10 Replies Latest reply on Feb 23, 2005 12:07 PM by adrian.brock

    Bad performance when deploying EJBs on JBoss 4.0

    jlsredondo

      I?ve been working for a while with an IIOP-accessible EJB on JBoss 2.3.5. This EJB is been used by a .Net client (IIOP.NET is my CORBA implementation for .Net) and the performance has been quite acceptable.

      In order to try out the last version of JBoss, I downloaded and installed the version 4.0. Then, I deployed the same EJB (without any change) and suddenly the performance dramatically decreased (various orders of magnitude). Since the business logic of the EJB is the same, I guess that the problem could be the marshalling and demarshalling of the parameters involved (in my case, they are return values).

      My question is whether JBoss 4.0 has performed any modifications on the IIOP protocol stack so that the performance is degraded.

      Thanks in advance.

        • 1. Re: Bad performance when deploying EJBs on JBoss 4.0
          reverbel

          You probably mean JBoss 3.2.5 rather than JBoss 2.3.5, right? (IIOP support appeared for the first time in 3.0.0.)

          Anyway, two IIOP-related changes may cause a performance decrease in 4.0:

          1) jacorb.jar was updated to (a patched version of) JacORB 2.2. A performance decrease has been reported for JacORB 2.2. The degradation shows up when JacORB tries to access unset configuration properties:

          http://lists.spline.inf.fu-berlin.de/pipermail/jacorb-developer/2004-September/006777.html

          2) Portable interceptors were added to deal with transaction context propagation and with security over IIOP (CSIv2). Usage of request interceptors in JacORB effectively disables the local call optimization that would otherwise happen on in-VM calls. This has a negative effect on the performance of applications that do in-VM calls to (remote interfaces of) IIOP-enabled EJBs. If you don't need transaction demarcation/propagation and security over IIOP, then you get rid of the negative effect by commenting out the tx and csiv2 interceptors in iiop-service.xml.

          Regards,

          Francisco

          • 2. Re: Bad performance when deploying EJBs on JBoss 4.0
            jlsredondo

            Hi Francisco,
            I've managed to disable the transaction demarcation over IIOP as stated in the file iiop-service.xml. However, i'm unable to do the same with the security attribute service interceptors. If I comment out the initializers:
            org.jboss.iiop.csiv2.SASInitializer
            org.jboss.iiop.csiv2.CSIv2Initializer
            Jboss throws an exception when starting up:
            2005-01-03 19:06:44,419 ERROR [org.jboss.ejb.StatefulSessionContainer] Initialization failed jboss.j2ee:jndiName=Interest,service=EJB
            org.omg.CORBA.PolicyError
            at org.jacorb.orb.ORB.create_policy(ORB.java:584)

            any idea ?

            By the other hand,is it possible to substitute JacORB by other CORBA implementation?. If so, could you possibly indicate the requirements that must be satisfied by the new CORBA implementation and the steps involved?

            Thank you very much.

            • 3. Re: Bad performance when deploying EJBs on JBoss 4.0
              reverbel

              The PolicyError exception will go away if you comment out just the SASInitializer, which is the one that installs a request interceptor and thus affects performance. The CSIv2Initializer must remain enabled, as it defines a POA policy that is used at EJB deployment time. This initializer does not install a request interceptor, so it should not cause a decrease on performance.

              There is another problem, though. Due to a coding oversight in releases 4.0.0 and 4.0.1 of JBoss, commenting out the just the SASInitializer will result in another exception. No exception will be thrown at EJB deployment time, but you will get an exception whenever the EJB receives a remote call. This problem has been fixed in CVS and won't be present in JBoss 4.0.2.

              Right now what you can do is get Branch_4_0 from CVS and build JBoss 4.0.2beta, which works properly with no request interceptors at all (with SASInitializer and Tx interceptor initializers commented out).

              Regards,

              Francisco

              • 4. Re: Bad performance when deploying EJBs on JBoss 4.0
                viguera79

                Hi Francisco,
                I downloaded Branch_4_0 from CVS but when I try to build an error message appears.
                I think that I have to download fron CVS other addicional files. Is this correct or all I need is in Branch_4_0?
                Best regards
                Javier

                • 5. Re: Bad performance when deploying EJBs on JBoss 4.0
                  starksm64

                  All that is needed is:

                  cvs co -r Branch_4_0 jboss-4.0
                  cd jboss-4.0/build
                  ./build.sh
                  



                  • 6. Re: Bad performance when deploying EJBs on JBoss 4.0
                    viguera79

                    Hi,
                    the command I used is:
                    cvs -d :pserver:anonymous@cvs.sourceforge.net/cvsroot/jboss co -r Branch_4_0 jboss-4.0

                    It begin to download a lot of files, but comparing these files with its its webview, there are many differences.

                    The file build.xml reference to a non-existen file, for example ../tools/etc/buildmagic/buildmagic.ent
                    Furthermore, in webview there are some folder that
                    they are not download with command above.
                    I'm running under windows 2000. When I execute build.bat nothing happend. If a try to execute build.xml with ant, an error message appears saying that buildmagic.ent file not found.

                    What am I doing bad?
                    Thanks and regards

                    • 7. Re: Bad performance when deploying EJBs on JBoss 4.0
                      starksm64

                      Then your co is not completing. Keep trying until the complete structure is obtained.

                      • 8. Re: Bad performance when deploying EJBs on JBoss 4.0
                        viguera79

                        I tried to download again and this time all was right.
                        Jboss4.0.2beta has a good performance even with interceptors enabled.

                        Thanks a lot

                        • 9. Re: Bad performance when deploying EJBs on JBoss 4.0
                          sunilarora123

                          Can any one send me the code or configuration files you have make changes to work with iiop client (CORBA) client. I am not able to register the bean on 3528 port and not able to acces C++ client

                          • 10. Re: Bad performance when deploying EJBs on JBoss 4.0

                            1) Use the USER FORUMS
                            http://www.jboss.org/index.html?module=bb&op=viewtopic&t=58934

                            2) DO NOT CROSS POST - post your question on multiple topics

                            3) DO NOT HIJACK - post an unrelated question on somebody else's topic

                            Read this:
                            http://www.jboss.org/wiki/Wiki.jsp?page=JBossForums