4 Replies Latest reply on Jun 22, 2011 3:09 PM by peterj

    JBoss Configuration

    sammacdonald

      We have a new version of an application that has been in production for years.

       

      The new version of this application runs on JBoss, I know very little about JBoss but I do know systems and configuration of said.

      Hardware:

           2 Xion 2.9 GHZ

           6 GIG RAM

      Software:

           Windows 2008 R2 x64

           Java x64

           JBoss 32

           Wrapper 32 to run JBoss as a service

       

      My concern is the configuration of the whole system by the vendor of the software.

      They are attempting to run Java 64 bit but run JBoss and wrapper 32 bit. Initially they were running Java 32 bit and upgraded it to 64 bit

      but did nothing about JBoss and the wrapper.

      We are running in to memory leeks and TCP/IP running out of ports.

       

      Anyone see what I'm saying about this configuration and have comments or real world experience with this and have a solid configuration

      that we should be using?

       

      TYA

      Sam.

        • 1. Re: JBoss Configuration
          peterj

          Sam, welcome to the JBoss Community!

           

          What is "Wrapper 32"? I know of several "wrappers" used to run Java apps as services. Some of these wrappers work by loading a JVM directly (in which case if the wrapper is 32-bit then the JVM must also be 32-bit), other work by executing a JVM in a separate process (in which case a 32-bit wrapper could run either a 32-bit or 64-bit JVM.

           

          BTW, there is no issue with running a 32-bit JVM on a 64-bit OS (other than the heap size limitation imposed by runnign a 32-bit process). Nor is there an issue with having both 32-bit and 64-bit JVMs on a machine and running both (which I to all the time).

           

          And JBoss AS itself could care less about the bitness of the JVM - Java is OS-independent. For example, we have JBoss AS running on a 48-bit machine with a 48-bit JVM without making a single change.

           

          What do you mean by memory leaks? Is the JVM throughing OutPOfMemoryException errors? If so, exactly which error is it (there are several - the text of the error identifies it). If not, what are you seeing.

           

          How do you know that TCP/IP is running out of ports? There are only 64K ports available regardless of the bitness of the OS or the JVM. Exactly what error message are you seeing?

          • 2. Re: JBoss Configuration
            sammacdonald

            Wrapper (I called it wrapper 32 because when I looked at it while running in task manager it showed 32 as in 32 bit)

            When I look at the file it has an icon with "JS" on the icon, the date is August 12, 2008, and the size is 200K.

             

            We started out with 32bit Java and were running to and over the memory limit.

            The vendor then had us install Java 64 bit. and set the Heap size to 4 gig, no other configuration changes.

             

            When this application runs over time it hangs, the memory consumed by Java alone hits 3.9 GIG.

             

            TCP/IP we had the server group look at the system yesterday when the system just stopped processing. They found thousands of ports being opened, Windows has a limit of 5000 ports being opened at a time. When the limit is reached TCP goes in to TCP Wait. The ports don't get free'd up.

            JBoss and the server must be restarted to get it to free up the ports.

             

            I guess what I'm asking is this.

            If one has a Windows 64bit OS and Java 64 bit, should the wrapper that JBoss runs in be a 64 bit wrapper? and should JBoss also be 64 bit?

            • 3. Re: JBoss Configuration
              sammacdonald

              I figured out how to find the version of wrapper we are running.

               

              D:\>wrapper -v
              Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org

              • 4. Re: JBoss Configuration
                peterj

                From what I recall with working with the Tanuki Wrapper ages ago is that it loads the JVM directly, thus it can load only a 32-bit JVM. You can verify this by checking to see if there is a java process that is running JBoss AS. To do this you would need to be able to see the command line passed to the process - Windows Server 3008, Vista and Windows 7 have that ability. If you have 2003 or XP, then you will need to get Process Explorer from sysinternals.

                 

                Of course, if you are still running with a 32-bit JVM then the large heap setting you mentioned will not work.

                 

                It does sound as if you might have a memory leak. Have you monitored heap usage? Have you taken heap dumps and analyzed those to see what is taking up the space? Try searching the forums for discussions on outofmemoryexception errors (other terms such as oome and virutalvm will also help to locate those dicussions: http://community.jboss.org/search.jspa?resultTypes=&dateRange=last90days&peopleEnabled=true&q=virtualvm&containerType=&container=&containerName=&username=&rankBy=relevance)

                 

                Regarding the ports being opened, I don't know how to determine how JBoss AS is using each port. But it could be that a resource leak, which could also cause the memory leak, could cause ports to remain opened.