IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.


#TechXchangePresenter
 View Only
Expand all | Collapse all

How to Install Newer JVM for IS

  • 1.  How to Install Newer JVM for IS

    Posted Tue May 13, 2003 09:47 PM

    How do I go about installing a newer JVM so that IS will use it? It comes with 1.3.0, but I have heard from some webMethods folks that IS will perform better using 1.3.1 or 1.4.x.

    I’ve tried installing the full J2SE SDK and then copying the bin and lib directories out of the jre directory into the \webMethods\IntegrationServer\jvm directory, but that doesn’t work.

    Any ideas?


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 2.  RE: How to Install Newer JVM for IS

    Posted Tue May 13, 2003 10:08 PM

    Have a peak at your runserver.bat

    The full path to your runtime exe should show up there. Make sure your new runtime exe is copied here.

    e.g.
    “C:\Program Files\webMethods\IntegrationServer4\jvm\bin\java.exe”


    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 3.  RE: How to Install Newer JVM for IS

    Posted Wed May 14, 2003 04:51 AM

    Before moving to higher versions of jdk, check with webMethods Support about the compatibility. TN4.6 may not work with jdk1.4.x. We faced a problem with TN conecting to database (OS -win2000, DB - Oracle) when jdk1.4.x was installed. It was throwing some exceptions related to Connection classes, while trying to conect to TN using TN Console. Swtiched back to jdk1.3.1 and the issue was solved.


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 4.  RE: How to Install Newer JVM for IS

    Posted Wed May 14, 2003 11:29 AM

    This is the procedure I have used many times.
    Install the new jdk/jre into a directory (E.G. jdk1.3.1_08 or jre1.3.1_08) on a computer of your choice. It does not need to be the computer that the Integration Server is running on.
    Copy the entire jdk1.3.1_08/jre1.3.1_08 directory to the destination computer.

    The next part involves a choice. The key though, is that your server.bat file must point to the new jdk/jre directory. look for a line like: SET JAVA_ROOT=e:\webMethods\IS46\jvm in server.bat. (the line will reflect where you installed IS, in my case I installed into e:\webMethods\IS46)

    Either modify that line in server.bat to point to your new jdk/jre directory (E.G. SET JAVA_ROOT=e:\jdk1.3.1_08) or copy the new jdk/jre into your \webMethods\IntegrationServer directory as jvm ( rename the existing \webMethods\IntegrationServer\jvm directory first). My preference is the second method.

    The batch file, server.bat builds the batch file runserver.bat. One way to make sure your IS is using the new jdk/jre is to rename/delete runserver.bat and start IS. A new runserver.bat file should appear. If not, the most likely cause is a typo in the mod to server.bat. You also can always turn “echo on” in server.bat and run it from a cmd prompt to see where it is failing.


    #Integration-Server-and-ESB
    #webMethods
    #Universal-Messaging-Broker


  • 5.  RE: How to Install Newer JVM for IS

    Posted Wed May 14, 2003 11:48 AM

    webMethods 601 GA seems too have shipped with both both jvm 1.3 & 1.4 (in installdir\jvm\win.sun13 and installdir\jvm\win.sun14).

    A while ago I attempted a run using this JVM 1.4 (by editing server.bat), but this resulted in the server dying with log showing:

    2003-03-24 17:48:48 GMT [ISS.0025.0023C] Audit Log Manager started
    2003-03-24 17:48:49 GMT [ISS.0025.0021C] ACL Manager started
    2003-03-24 17:48:49 GMT [ISS.0025.0008C] State Manager started
    iaik.security.random.RandomException: Error instantiating SecureRandom: iaik.sec
    urity.random.RandomException: Could not get AES algorithm!
    at iaik.security.random.SecRandom.a(SecRandom.java)
    at iaik.security.random.SecRandom.getDefault(SecRandom.java)
    at com.wm.app.b2b.server.StateManager.init(StateManager.java:63)
    at com.wm.app.b2b.server.Server.run(Server.java:215)

    Has anybody else managed to run webMethods 6 with this JVM 1.4 or would I have to install yet ANOTHER JVM 1.4 ?


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 6.  RE: How to Install Newer JVM for IS

    Posted Wed May 14, 2003 12:28 PM

    Currently, the product is not certified to run the 1.4.x version of the JVM. This is in the release docs.

    I have several clients who are running 6.01. One client had the IBM JRE 1.3.0 installed (have no idea how or why.) I ramped the system over to the Sun JDK 1.3.1_07 for Windows.

    In addition to the switch of JVMs as noted in previous posts, there are a couple of tuning tips that you should try out:

    1. Make the memory settings the same:
      set JAVA_MIN_MEM=256M
      set JAVA_MAX_MEM=256M

    This will allocate all the available memory upfront and in the long run, you will be happier with the performance.

    1. Set a “-server” switch in the server.bat file as well:

    set JAVA_RUN=%JAVA_EXE% -server %JAVA_MEMSET%

    This is further down in the server.bat file. THIS WILL NOT WORK FOR THE IBM JRE and may not work with any JRE. I always use the JDK so cannot note if it will run correctly.

    A quick way to test which JVM you are using, is to click on the “ABOUT” link in the Admin console. It will provide you with the path to the JRE/JDK along with your entire path with all jars, etc.

    In the line noted above, set JAVA_RUN=%JAVA_EXE% -server %JAVA_MEMSET%
    if you replace the “-server” switch with “-version” and then run the server.bat at console (WINDOWS), it will display the version of the JVM and then exit. You will type:

    server.bat -log none -debug 6

    The window will display the Java Virtual Machine info. Hope this helps.

    1. Create a java service called “runGarbage”. Make it in a package/interface that you plan to keep around for some time.

    In the Java service, type in this line:

    System.gc();

    That’s it. After you save it, create a scheduler to run repeatedly every 2 - 5 minutes. Look at the memory meter, it will flatten out over time. This has a higher priority then the gcMins setting in the server.cnf file.

    Ray


    #Integration-Server-and-ESB
    #webMethods
    #Universal-Messaging-Broker


  • 7.  RE: How to Install Newer JVM for IS

    Posted Wed May 14, 2003 12:48 PM

    i simply replace everything inside the webMethods\IntegrationServer\jvm with the jdk131\ stuffs and it works fine.

    be careful using jdk 14x. there are differences between 13x and 14x and some of the packages or java services may not work under 14x.


    #webMethods
    #Integration-Server-and-ESB
    #Universal-Messaging-Broker


  • 8.  RE: How to Install Newer JVM for IS

    Posted Wed May 14, 2003 01:26 PM

    Just for clarification, my original question pertains to IS version 6.0.1.

    Daniel - I get the same thing as you with the 1.4 JVM, including the one from webMethods and a freshly downloaded 1.4.1_02 from Sun. The 1.3.1 version from the \webMethods\jvm\win.sun13, when copied into the integrationserver\jvm directory (after deleting the original in that location), seems to work.


    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 9.  RE: How to Install Newer JVM for IS

    Posted Thu May 15, 2003 01:14 AM

    Ray

    why use a java service for System.gc() when watt.server.cache.gcMins could be set to the same value as the scheduled service ?

    (Specifies how often (in minutes) the server sweeps the cache to perform garbage collection. The default is 60 minutes.)

    thanks


    #Universal-Messaging-Broker
    #webMethods
    #Integration-Server-and-ESB


  • 10.  RE: How to Install Newer JVM for IS

    Posted Thu May 15, 2003 01:51 PM

    Hi, Kevin.

    watt.server.cache.gcMins and the other watt.server.cache.* services are specific to the Integration Server cache. it is useful to sweep these values, but Ray is specifically talking about cleaning house on the JVM.

    In theory, System.gc() doesn’t do a thing – the JVM cleans itself up. And, in theory, System.gc() has such low priority that invoking it should not make a difference. In practice, though, it works.

    With regular invocations of a Garbage Collector service, you can manage the JVM’s tendency to grab more resources than its frees. Folks around here will tell you that they use the System.gc() invocation every 30-60 minutes.

    Using a scheduled service is the easiest way. Let us know if you need a hand getting it setup.


    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods


  • 11.  RE: How to Install Newer JVM for IS

    Posted Thu July 10, 2003 11:42 AM

    Hi together,

    if you want to use JVM 1.4.x you have to do the following:

    1. Install the JVM 1.4.x
    2. SET JAVA_ROOT=%xxx%:\jdk1.4.xxx
    3. Delete the jce.jar from your %xxx%\jdk1.4.xxx\jre\lib\ (i’m not sure of the place of the file, name is correct).
    4. Restart the server.
    5. Check in the settings in the About of Administrator.

    Hope, i forgot nothing.
    David


    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 12.  RE: How to Install Newer JVM for IS

    Posted Fri July 11, 2003 03:05 PM

    Hi David,

         Is It JVM1.4.x supports webmethods6.0.X versions?I think 
    

    it won’t supports.

    Thanks,
    SriniK


    #Universal-Messaging-Broker
    #webMethods
    #Integration-Server-and-ESB


  • 13.  RE: How to Install Newer JVM for IS

    Posted Fri July 11, 2003 03:16 PM

    Hi Srinik,

    that’s correct.
    But it’s running very fine in two of our projects.
    In a SUN environment the performance increases 50%.

    Best Regards
    David


    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 14.  RE: How to Install Newer JVM for IS

    Posted Fri July 11, 2003 10:49 PM

    Seems like I saw the process for installing JDK 1.4 in some webMethods release notes or documentation, but I cant’ put my hands on it. Has anyone else seen this?

    Mark


    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods


  • 15.  RE: How to Install Newer JVM for IS

    Posted Sat July 19, 2003 12:23 AM

    IS 6.0.1 SP1 Readme contains instructions regarding how to modify IS “so that the Integration Server works properly with JVM 1.4.x”. The Readme also notes that JVM 1.3.1 must still be used to compile custom Java services.


    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods


  • 16.  RE: How to Install Newer JVM for IS

    Posted Tue September 09, 2003 11:52 PM

    We’ve upgraded IS 6.0.1 to use JVM 1.4.x and it’s working fine. Is anyone running the repository server successfully on 1.4.x?

    This would involve changing the JVM and optionally setting the -server switch in the following files in the reposerver/bin directory?

    repoconfig.sh
    repostore.sh
    repoui.sh


    #webMethods
    #Integration-Server-and-ESB
    #Universal-Messaging-Broker


  • 17.  RE: How to Install Newer JVM for IS

    Posted Thu September 18, 2003 05:22 PM

    This morning I succeeded in getting the WM6.0.1 Repository talking to an Oracle 9i RAC db (v9.2.0) using Suns 1.4.1_02 version of Java. I replaced the JAVA_DIR line in repostore.sh and repoconfig.sh, repoui.sh will not work with this JVM - UI problems - as far I can tell it will work with the supplied IBM jvm, but you don’t really need it. I now prefer to directly edit the repository2.cnf file located in $IS_DIR/reposerver/config/. Oh yes - very important - use the Oracle thin driver, “oracle.jdbc.driver.OracleDriver” - to do this you must be sure that Oracle’s classes12.zip file gets added to your $REPOCLASSPATH. I know for sure that repostore.sh needs this, I don’t believe repoconfig does but I haven’t fully investigated that.


    #Universal-Messaging-Broker
    #webMethods
    #Integration-Server-and-ESB


  • 18.  RE: How to Install Newer JVM for IS

    Posted Mon November 24, 2003 08:51 PM

    We’ve also been succesfully running everything under Sun142, including the repo server, developer, and the TN package.
    Besides deleting the jce.jar, we did have to add an endorsed dir… \jvm\jre\lib\endorsed with xerces.jar for proper XML handling in a particular package.


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 19.  RE: How to Install Newer JVM for IS

    Posted Mon November 24, 2003 09:25 PM

    I reconfigured the IS 6.01 server on my Windows XP laptop to use Sun JDK 1.4.2. I also added the -Xloggc:<filename> parameter to the java command in the server.bat startup script to write the garbage collection stats to a file for subsequent analysis.

    While there are many tools out there to do this, I used the free HPJTune tool available from [url=“http://www.hp.com/products1/unix/java/java2/hpjtune/index.html”]http://www.hp.com/products1/unix/java/java2/hpjtune/index.html[/url] to create graphs showing garbage collection duration and reclaimed memory amounts.

    These are not very interesting on a single-CPU laptop used only for development, but I’m preparing for an upcoming tuning assignment.

    Mark


    #Integration-Server-and-ESB
    #webMethods
    #Universal-Messaging-Broker


  • 20.  RE: How to Install Newer JVM for IS

    Posted Thu December 18, 2003 05:29 PM

    Hi Ray. I’m interested to know why you “ramped the system over to the Sun JDK 1.3.1_07 for Windows”. From what I have heard/read webMethods IS performs better on the IBM 1.3.1. JVM.

    We are currently running webMethods (6.0.1. SP2) Integration Server under the Sun 1.3.1_09 JVM, on Windows 2000 Server (Service Pack 3 Build 2195). The server is an IBM eServer xSeries 360 (2 hyper-threaded cpu’s), with 6GB of RAM.
    Our Java Min and Max memory (in server.bat) are:
    JAVA_MIN_MEM=2048M
    JAVA_MAX_MEM=2048M

    Is it worth switching to IBM’s 1.3.1 JVM ? Any other tuning tips ?

    We are planning to create a Java service to execute the System.gc() command. This service will be scheduled to run every few minutes. The feedback from this forum and others I have talked to agree that this should be done.

    Comments ?

    Regards,

    Wayne


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 21.  RE: How to Install Newer JVM for IS

    Posted Thu December 18, 2003 06:01 PM

    Wayne,

    The IBM JVM was originally shipped with earlier versions of the webm platform. Many people swear by it, but I switched because the original was a 1.3.0 version and I wanted a minimum of 1.3.1.

    If you are running as a service, there is a lot more that you have to do because of some registry settings that are needed relating to the JVM.

    It would be nice if webMethods gave the installer an option to choose the JVM (bundled or their own.)

    I am more familiar with SUN because I have used it since day one over IBM and there is a TON of tuning/optimization information available from SUN.

    INTEL may have some information relating to the IBM JVM on their site as I recall a benchmark whitepaper on this topic.

    As far as System.gc();, tech support started giving me this “fix” when we had java.lang.OutOfMemory errors. I always kinda wondered what the server.cnf watt.server.cache.gcMins does because it seems like it does nothing at all. I run System.gc(); every five minutes.

    Generally, my experience has been that the JVMs provided by the OEMs work better with their stuff. And, sometimes you have no other choice.

    HTH

    Ray


    #Integration-Server-and-ESB
    #webMethods
    #Universal-Messaging-Broker


  • 22.  RE: How to Install Newer JVM for IS

    Posted Thu December 18, 2003 07:27 PM

    Thanks Ray.
    You mentioned “there is a lot more that you have to do” if we are running the IS as a service.
    We ARE running it as a service. The only thing we did was run the batch file installSvc.bat in <webMethods>\IntegrationServer\support\win32
    Is there more to do ?

    Wayne


    #webMethods
    #Integration-Server-and-ESB
    #Universal-Messaging-Broker


  • 23.  RE: How to Install Newer JVM for IS

    Posted Thu December 18, 2003 08:11 PM

    If it worked for you, then you are truly blessed. For us, we had to perform a super-hack on the windows registry and dump some of the supporting files (Registry, FSData and some others). I didn’t work on this specific part of this project but I can scoop up the details if they are needed.

    We had to do this because the installSvc.bat didn’t function properly for us.

    Ray


    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods


  • 24.  RE: How to Install Newer JVM for IS

    Posted Thu December 18, 2003 09:15 PM

    Ray,

    I think forcing a full GC using System.gc() may have been a necessity “back in the day” before newer generational garbage collection features were introduced (and improved) in the 1.3.1 and 1.4.x JDK’s.

    If you read how garbage collection works on Sun’s Java tuning pages it appears that you could actually make performance worse by forcing a full GC when compared to a JVM that is using properly configured generational garbage collection. Note: different java vendors have different command line parameters that are used to tweak the JVM gc settings. I know of some internal webMethods performance tuning documents that discourage the practice of scheduling System.gc() for this reason.

    Here’s an entry in the GC FAQ from [URL=“Oracle Java Technologies | Oracle”]Oracle Java Technologies | Oracle

    31. Should I pool objects to help GC? Should I call System.gc() periodically?

    The answer to these is No!

    Pooling objects will cause them to live longer than necessary. We strongly advise against object pools.

    Don’t call System.gc(). The system will make the determination of when it’s appropriate to do garbage collection and generally has the information necessary to do a much better job of initiating a garbage collection. If you are having problems with the garbage collection (pause times or frequency), consider adjusting the size of the generations.
    [/quote]

    For more on this related to the Sun 1.4.2 JDK see: [URL=“Oracle Java Technologies | Oracle”]Oracle Java Technologies | Oracle

    BTW, Integration Server 6.1 (planned for a Jan. 2004 release) will support Java 1.4.1 or 1.4.2 depending on what platform you are using.

    Mark


    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods


  • 25.  RE: How to Install Newer JVM for IS

    Posted Thu December 18, 2003 09:41 PM

    Hey Mark,

    I agree with you in principal, but best practices doesn’t always meet your requirement. System.gc(); seems to be the castor oil of java. Tastes horrible but fixes all that ills.

    I run mine every five minutes and it seems to do the trick. On the newer JVMs (of which I must confess I have never used) the parallel GC probably takes care of what the System.gc() does now.

    I can say this with a straight face: When I am parsing VERY large files using node iterator, at the end of each repeat, I am known to stick in a call to System.gc() to flush out the dead stuff.

    I have seen serious performance degradation by using System.gc() too much. It’s a touchy feely kinda thing.

    Ray


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 26.  RE: How to Install Newer JVM for IS

    Posted Thu December 18, 2003 09:56 PM

    I’m sure that you can OD on castor oil just like anything else.

    Just keep in mind that if you write code (or schedule services) which force System.gc(), you may be negating the main advantage you would get from upgrading to a newer JDK in the future.

    I hope to have a chance to do some JVM tuning soon and will report back if we find anything specific to webMethods.

    Mark


    #Universal-Messaging-Broker
    #webMethods
    #Integration-Server-and-ESB


  • 27.  RE: How to Install Newer JVM for IS

    Posted Thu January 15, 2004 05:12 PM

    This article ([url=“IBM Developer”]IBM Developer) on fine-tuning Java performance was referenced in the new “Advanced Troubleshooting Guide” recently published on Advantage.

    The advanced troubleshooting guide can be downloaded by first logging into advantage in a new browser window and then clicking on the following link: [url=“http://advantage.webmethods.com/cgi-bin/advantage/logAndRedirect.jsp?w=0&s=3251635231&t=SOLUTION&targChanId=-536883716&oid=536919336&l=tslog200401.log”]http://advantage.webmethods.com/cgi-bin/advantage/logAndRedirect.jsp?w=0&s=3251635231&t=SOLUTION&targChanId=-536883716&oid=536919336&l=tslog200401.log[/url]

    The Java performance tuning article identifies the concurrent and parallel processing capabilities of each phase of the garbage collection process by IBM JVM version.

    IS 4.6 ships with IBM 1.3.0 and IS 6.1 will ship with IBM 1.3.1 for Windows. At the time of the 6.1 testing, IBM had not yet released their 1.4.x JVM.

    Mark


    #webMethods
    #Integration-Server-and-ESB
    #Universal-Messaging-Broker


  • 28.  RE: How to Install Newer JVM for IS

    Posted Thu January 15, 2004 05:25 PM

    Hmmm, this is a better URL for the advanced troubleshooting guide might be:



    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 29.  RE: How to Install Newer JVM for IS

    Posted Fri January 16, 2004 01:19 AM

    I just though I add my 2 cents here. Personally in my experiance I run into many memory problems using IS in different projects. WM support used to allways advise a first thing is do gc() call. However, I have never seen System.gc() calls fix or improve any of my memory or grabge collection issues in IS! On the other hand I have not seen it to do any harm iether. To me gc() call changed nothing had practically no effect. This is working on differnt JVM 1.1.8 1.3.0, 1.3.1 and 1.4.x from SUN or IBM alike on hardware by IBM AIX, SUN, HP or Windows and Linux.

    What did help in most memory problem situations is Java parameter tuning, OS kernel tunning where possible and most importantly revising the code created by many people. Nearly in all cases memory problems were found inside the code rather than JVM. Once some minor java service was changed memory problems would go away. Its finding this small mistake usually a long task.

    Take it as you will but that has been my experiance.


    #Universal-Messaging-Broker
    #webMethods
    #Integration-Server-and-ESB


  • 30.  RE: How to Install Newer JVM for IS

    Posted Thu January 22, 2004 06:15 PM

    My first hand analysis of GC logs produced by a load test conducted last week showed “normal” gc behavior that responded as expected to changes in the size of the memory heap or to other vendor-specific GC parameters.

    For example, in one test increasing the java heap size from 768Mb to 1024Mb decreased the frequency of garbage collections from 6 seconds to 12 seconds while slightly increasing the time required to complete the GC from 900ms to 1000ms.

    If the verbose GC logs show issues related to either too frequent GC’s or excessively long GC pause times, these issues could be addressed successfully by iterative testing and tuning of the JVM parameters available from the JVM vendor.

    In last week’s test an IS integration service was completely filling a 1.3Gb JVM heap every 12 seconds. The resulting GC’s completed in approximately 1 second under the IBM 1.3.0 JVM which uses a parallel mark phase, but single threaded sweep and compaction phases. I can see absolutely no need to introduce a System.gc() into this particular application.

    Here’s my current take on IS performance tuning:

    Mark


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 31.  RE: How to Install Newer JVM for IS

    Posted Tue January 27, 2004 01:41 PM

    Hi all,

    We’re conducting some load tests here also.
    We are testing various configuration scenarios, changing the parameters watt.server.broker.producer.multiclient, watt.server.threadPool, watt.server.threadPoolMin and the garbage collection parameters when starting JVM, in a way to determine the best set of parameters according our application.
    I couldn’t find enough information about how to configure a Solaris box in a way to best accommodate webMethods.
    Can you guys give me some tips about OS configuration?
    Any help will be fully appreciated.
    BTW, we’re running wM6 over jvm 1.4.2 into Solaris SunOS 5.8.

    Thanks,
    Maldonado


    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods


  • 32.  RE: How to Install Newer JVM for IS

    Posted Tue July 20, 2004 07:18 PM

    Dead Horse Society,

    Read this thread from top to bottom. After (and only after) reading the thread and the linked articles, post detailed, factual responses showing the “benefits” of scheduled System.gc() calls if you have any.

    Mark


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 33.  RE: How to Install Newer JVM for IS

    Posted Wed July 21, 2004 08:00 PM

    A long-time WM Users member asked what I meant by Dead Horse Society. I was referring to this post yesterday and assumed (incorrectly) that readers were familiar with the “beating a dead horse” idiom.

    Mark


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 34.  RE: How to Install Newer JVM for IS

    Posted Wed July 21, 2004 08:54 PM

    oh… oops…

    I guess I was following one of these strategies.
    Beating a Dead Horse

    Cheers!

    • Saurabh.

    #Integration-Server-and-ESB
    #webMethods
    #Universal-Messaging-Broker


  • 35.  RE: How to Install Newer JVM for IS

    Posted Wed August 11, 2004 01:28 AM

    Hi,
    Can anyone let me know where to download IBM jvm 1.3.1? We are currently on IBM 1.3.0 version and planning to upgrade to 1.3.1 on Windows OS.
    Thanks,
    VL


    #Integration-Server-and-ESB
    #webMethods
    #Universal-Messaging-Broker


  • 36.  RE: How to Install Newer JVM for IS

    Posted Wed August 11, 2004 02:09 AM

    It is included as part of the IBM WebSphere SDK for Web Services (WSDK) Version 5.1

    This SDK contains the following components:

    • An embedded version of IBM WebSphere Application Server - Express V5.0.2, with additional support for ORB and EJBs []Support for SOAP 1.1, WSDL 1.1, UDDI 2.0, JAX-RPC 1.0, EJB 2.0, Enterprise Web Services 1.0 (JSR 109), WSDL4J, UDDI4J, and WS-Security []IBM WebSphere UDDI v2.0 registry []An entry-level database providing a JDBC implementation []IBM SDK for Java 2 Standard Edition (J2SE) Technology, version 1.3.1 []Eclipse plug-ins to expose JavaBeans and stateless session EJBs as Web services, to enable browsing for Web services in UDDI registries, to create Web services from WSDL definitions, and to publish and unpublish Web services to a UDDI registry []Command line tools to expose JavaBeans and stateless session EJBs as Web services, to create Web services from WSDL definitions, and to publish and unpublish Web services to a UDDI registry [*]Samples showing how to:
      [list=1]
    • expose JavaBeans and stateless session EJBs as Web services []create Web services from WSDL definitions []publish, unpublish and lookup Web services using UDDI [*]create secure Web services using the WS-Security specification
      [/list]
    • Information on how to use a Supply Chain Management Sample that is WS-I conformant [*]Comprehensive documentation including Web services concepts, developer tasks, and reference materials

    See also the main IBM developer kits page.

    Mark


    #webMethods
    #Integration-Server-and-ESB
    #Universal-Messaging-Broker


  • 37.  RE: How to Install Newer JVM for IS

    Posted Wed September 08, 2004 12:21 AM

    Hi Mark,
    Aloha. In an attempt to get myself off the DeadHorseSociety :wink: I ran some load test on webMethods IS 6.1 running IBM jvm 1.3.1 on Windows 2000 (my local box, couldn’t get any of our development boxes to set up this test)

    I ran a simple load test (with and without GC scheduled) which simply invokes a web service; I also set up a separate scheduler which logs available memory by invoking WmRoot Svc getResourceSettings.

    Generally I have GC scheduled to run on production instances every 5 min but for this load test, I reduced it to run every minute.

    Case 1 : (With GC Scheduled @ 1 minute)

    The Available memory starts with 86%, reduces to 80% to 73%, GC kicks in, the available memory bumps up to 86%… and this cycle continues.

    2004-08-16 18:06:22 EDT I: 86 % (338610 KB)
    2004-08-16 18:06:23 EDT I: 86 % (337663 KB)

    2004-08-16 18:06:47 EDT I: 81 % (317329 KB)
    2004-08-16 18:06:48 EDT I: 80 % (316286 KB)

    2004-08-16 18:07:16 EDT I: 74 % (290402 KB)
    2004-08-16 18:07:21 EDT I: 73 % (285571 KB)
    2004-08-16 18:07:22 EDT I: 73 % (285295 KB)
    2004-08-16 18:07:23 EDT I: 86 % (338837 KB)
    2004-08-16 18:07:24 EDT I: 86 % (338717 KB)

    Thus in this case, the memory never goes below 73%;

    Case 2 : (Without GC Scheduled)

    The Available memory starts with 83%, periodically/gradually reduces to 52% to 27% to 6% to 1%. When the available memory is @ 1%, GC automatically kicks in, and the available memory bumps up to 83%… and this cycle continues. Here are the logs for it. Notice, that available memory was at 1% for about 3 seconds.

    2004-08-16 17:30:24 EDT I: 83 % (324618 KB)
    2004-08-16 17:30:25 EDT I: 82 % (324590 KB)

    2004-08-16 17:30:28 EDT I: 52 % (204892 KB)

    2004-08-16 17:30:31 EDT I: 27 % (105191 KB)

    2004-08-16 17:31:59 EDT I: 6 % (22876 KB)
    2004-08-16 17:32:01 EDT I: 5 % (21199 KB)
    2004-08-16 17:32:05 EDT I: 4 % (17689 KB)
    2004-08-16 17:32:10 EDT I: 3 % (13038 KB)

    2004-08-16 17:32:14 EDT I: 2 % (9471 KB)
    2004-08-16 17:32:19 EDT I: 1 % (4885 KB)
    2004-08-16 17:32:20 EDT I: 1 % (4051 KB)
    2004-08-16 17:32:21 EDT I: 1 % (3224 KB)
    2004-08-16 17:32:22 EDT I: 83 % (326800 KB)
    2004-08-16 17:32:23 EDT I: 83 % (325678 KB)
    2004-08-16 17:32:25 EDT I: 82 % (323926 KB)

    This definitely proves that GC works. There is no need specifically to schedule GC. This vindicates your position on this issue (needless to say that we never had any doubt about your position on this or on IBM jvm programmers to implement GC correctly!!)

    But I wonder if during that 3 second time window, the IS receives several http invokes to a particular svc, which say is memory intensive code. Will IS throw OutofMemory exceptions or not? Will it possibly be much slower than normal response from IS?

    I have no idea. What are your thoughts on that? I will see if I can simulate these conditions somehow and run some load test to prove either ways?

    Meanwhile, I continue to have GC scheduled on my IS instances making available memory on the server even out over a period of time. In the above instance, @ 86%.

    One other point to note, that even if I don’t have the load test running (with GC disabled) and a scheduler to log available memory (making the server virtually idle), the memory keeps sinking to 1% eventually to rise to 83%.

    Hope all this throws some light on the issue.

    • Saurabh.

    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods


  • 38.  RE: How to Install Newer JVM for IS

    Posted Wed September 08, 2004 12:33 AM

    And Mark,
    possibly thinking of a solution to satisfy everyone in and off Dead Horse Society, I came up with this idea. (with keeping the above post in mind)

    Schedule a java service; do Runtime.freeMemory()/Runtime.totalMemory(); if the value is below a particular threshold (say 0.2), do System.gc();

    This way at least we would not be doing GC every 5 minutes or so, but instead when say the available memory is only 20%.

    This is kind of middle approach, with benefits and limitations of both sides of argument.

    • Saurabh.

    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 39.  RE: How to Install Newer JVM for IS

    Posted Wed September 08, 2004 01:00 AM

    Saurabh,

    Great work on your benchmarking! I’m reasonably sure that if additional memory allocation requests had been received by the JVM when there was only 1% available memory that an incremental GC would have been triggered.

    Depending on your JVM vendor and version there are quite a few options to allow you to configure the garbage collection behavior. IBM 1.3.0 had almost no options to tune GC behavior while Sun’s 1.4.2 has quite a few. See Tuning Garbage Collection with the 1.4.2 Java Virtual Machine for more details.

    You should be able to use the JVM’s options to set thresholds without scheduling anything in IS.

    You are officially, no longer a member of the DHS! Congratulations!

    BTW, I was reading some release notes about a recent fix to IS and it stated that explicit calls to System.GC were removed from some webMethods flat file handling code to improve performance especially on multi-processor servers.

    Mark


    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 40.  RE: How to Install Newer JVM for IS

    Posted Wed September 08, 2004 01:08 AM

    BTW, the real goal is not to use the least amount of memory, but to achieve the desired combination of fastest throughput and highest efficiency related to how much time the CPU spends doing useful work vs. running garbage collection tasks.

    You could schedule System.GC every 10 seconds to keep memory utilization low, but would probably kill performance in the process.

    Anyone interested enough in performance to start messing around with explicit calls to System.GC() should first carefully read Sun’s GC tuning article.


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 41.  RE: How to Install Newer JVM for IS

    Posted Mon November 08, 2004 04:38 PM

    Hi Guys,

    Another small query regarding Java and OS and memory.

    What are the restrictions on the total memory assigned when running HP JVM 1.2.2 on HP-UX 11.11?

    It seems that there are restrictions which we assumed would not be there when we migrated from a Win 2000 server.

    Thanks in advance,

    Steve.


    #webMethods
    #Universal-Messaging-Broker
    #Integration-Server-and-ESB


  • 42.  RE: How to Install Newer JVM for IS

    Posted Wed August 24, 2005 07:18 PM

    Hi,

    I have to install jvm 1.4.2 on my IS so as to use the MessageDigest class. I am currently using jvm 1.4.0 which comes with the wM 6.0.1 installation.
    For this, I copied the bin and lib directories of 1.4.2 in the IS/jvm directory but got the follwing errors while trying to restart the server:

    D:\webMethods60\IntegrationServer\bin>server.bat
    java.lang.ExceptionInInitializerError
    at javax.crypto.Cipher.a(DashoA6275)
    at javax.crypto.Cipher.getInstance(DashoA6275)
    at com.entrust.toolkit.security.provider.AnsiRandom1.engineSetSeed(AnsiR
    andom1.java)
    at java.security.SecureRandom.<init>(Unknown Source)
    at iaik.security.random.SecRandom.<init>(SecRandom.java)
    at com.entrust.toolkit.security.provider.AnsiRandom.<init>(AnsiRandom.ja
    va)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou 
    

    rce)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at iaik.security.random.SecRandom.a(SecRandom.java)
    at iaik.security.random.SecRandom.getDefault(SecRandom.java)
    at com.wm.app.b2b.server.StateManager.init(StateManager.java:63)
    at com.wm.app.b2b.server.Server.run(Server.java:213)
    Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
    at javax.crypto.SunJCE_b.<clinit>(DashoA6275)
    … 16 more
    Caused by: java.security.PrivilegedActionException: java.security.InvalidKeyExce
    ption: InitVerify error: java.security.NoSuchAlgorithmException: Cannot find any
    provider supporting RSA/ECB/PKCS1Padding
    at java.security.AccessController.doPrivileged(Native Method)
    … 17 more
    Caused by: java.security.InvalidKeyException: InitVerify error: java.security.No
    SuchAlgorithmException: Cannot find any provider supporting RSA/ECB/PKCS1Padding

        at iaik.security.rsa.RSASignature.engineInitVerify(RSASignature.java) 
    at java.security.Signature.initVerify(Unknown Source) 
    at iaik.x509.X509Certificate.verify(X509Certificate.java) 
    at iaik.x509.X509Certificate.verify(X509Certificate.java) 
    at javax.crypto.SunJCE_b.c(DashoA6275) 
    at javax.crypto.SunJCE_b.b(DashoA6275) 
    at javax.crypto.SunJCE_s.run(DashoA6275) 
    ... 18 more 
    

    Is there anything that I am missing out here?

    Rgds,
    Anant


    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 43.  RE: How to Install Newer JVM for IS

    Posted Mon December 05, 2005 08:32 PM

    Noticed this thread was started in May, 2003. Coming to the end of 2005, can someone (like Mark Carlson) help me answer the following questions?

    1. Is JVM1.4 officially supported by WM for IS6.1 on SunOS 5.6?
    2. Porting from current JVM1.3, what kind of effort and benefits I am working at?
    3. What are the issues and risks that people has run into when porting from JVM1.3 to 1.4?

    Thank you in advance!


    #Universal-Messaging-Broker
    #Integration-Server-and-ESB
    #webMethods


  • 44.  RE: How to Install Newer JVM for IS

    Posted Mon December 05, 2005 10:07 PM
    1. Yes. Confirmed by reading the Integration Server Platforms and O/S Requirements section of the wM 6.1/6.1.5 Installation Guide (Bookshelf->Installation section of Advantage) []See this post. []Very few. Almost none, if your java services were very simple and stuck to the core parts of Java 1.3.

    HTH,

    Mark


    #Integration-Server-and-ESB
    #Universal-Messaging-Broker
    #webMethods