|
From: Leif M. <lei...@ta...> - 2013-11-19 11:48:29
|
Melinda, Another user sent the following: --- I think there may be a different cause to the one you have suggested. I’m not sure about 64bit Java using twice as much memory – that’s never been the case for me. However the stack sizes are substantially bigger on 64bit Java. The user reports the exception “java.lang.OutOfMemoryError: unable to create new native thread”. It could be they are out of heap but as it fails on creating a new thread it’s much more likely to be out of thread stack space. Worth checking if the app is highly threaded – and if so reduce the thread stack size with Java’s –Xss switch. For example, try this wrapper.java.additional.3=-Xss128K If this is the case, a more longer term solution would be to rewrite the application to use ThreadPools as a huge number of threads is never going to be efficient. --- Could you please give this a try and let me know how it works for you? Also, approximately how many threads does your application have? Try invoking a thread dump if you are unsure. Cheers, Leif On Thu, Nov 14, 2013 at 11:04 PM, Leif Mortenson < lei...@ta...> wrote: > Melinda, > Please follow up on the other message you sent to support. > Here is what I wrote there: > ---- > I think those are old CVS version numbers so that is a VERY old version. > The Wrapper's version can be found by running the following: > wrapper.exe -v > > You should also see this information at the top of your wrapper.log file. > The Wrapper will output a warning if the wrapper.jar or wrapper.dll files > are not of the same version. > > The OutOfMemoryError you are getting is not related to the Wrapper. All > that means is that the JVM is not able to allocate enough memory. This can > happen if there is not enough memory on the server, or more likely, if you > need more memory than the maximum defined for the JVM. Yours is set to 1GB > here: > wrapper.java.maxmemory=1024 > > Is the JVM version the same on both servers? 64-bit JVMs require almost > twice the memory for the same application as a 32-bit JVM. It is also > possible that different data is causing the difference in behavior. > > You can try increasing the max memory. If you are still unsure of the > cause then you will need to make use of a profiler to see what is going on > in your application. This kind of issue is almost certainly not a Wrapper > issue, but please let me know if you have any questions or have more > information pointing to the Wrapper. > > Sincerely, > Leif Mortenson > Tanuki Software, Ltd. > > > > On Thu, Nov 14, 2013 at 10:01 PM, Melinda Savoy < > Me...@sh...> wrote: > >> I’m not sure what all info you guys require in order to answer the >> question we have. But any help/direction would be greatly appreciated as >> it is driving our tech support guys crazy. Thank you. >> >> >> >> We just started getting the following error after moving the JAR that the >> Wrapper service executes to a new MS 2008 R2 64 bit machine from a 2003 32 >> bit machine (BTW, this app was NOT having this error on the old box as the >> jar has not been changed since 10/1/2012): >> >> >> >> INFO | jvm 1 | 2013/11/14 00:54:06.245 | Exception in thread >> "PulseChannel-ReceiveQueuer-6 73" java.lang.OutOfMemoryError: unable to >> create new native thread >> >> INFO | jvm 1 | 2013/11/14 00:54:06.245 | at >> java.lang.Thread.start0(Native Method) >> >> INFO | jvm 1 | 2013/11/14 00:54:06.245 | at >> java.lang.Thread.start(Unknown Source) >> >> INFO | jvm 1 | 2013/11/14 00:54:06.245 | at >> com.sharpbancsystems.ATM.channel.Request.start(Request.java:992) >> >> INFO | jvm 1 | 2013/11/14 00:54:06.245 | at >> com.sharpbancsystems.ATM.channel.RequestQueue.queue(RequestQueue.java:253) >> >> INFO | jvm 1 | 2013/11/14 00:54:06.245 | at >> com.sharpbancsystems.ATM.channel.ReceiveQueuer.run(ReceiveQueuer.java:143) >> >> INFO | jvm 1 | 2013/11/14 00:54:06.245 | at >> java.lang.Thread.run(Unknown Source) >> >> >> >> Below is our current wrapper.conf configuration and to my knowledge has >> not been changed when moved to this new server : >> >> >> >> #******************************************************************** >> >> # Wrapper Properties >> >> #******************************************************************** >> >> # Java Application >> >> #wrapper.java.command=C:/Program Files/Java/jre1.6.0_04/bin/java >> >> #wrapper.java.command=C:/Program Files/Java/jre1.5.0_14/bin/javaw.exe >> >> wrapper.java.command=C:/Program Files (x86)/Java/jre1.6.0_11/bin/javaw.exe >> >> #wrapper.java.command=C:/Program Files/Java/jdk1.6.0_14/jre/bin/javaw.exe >> >> #wrapper.java.command=C:/Program Files/Java/jre1.6.0_11/bin/javaw.exe >> >> >> >> # set current working directory so that PBF download can develop absolute >> path for download >> >> set.default.CWD=c:\ATMoPOStR2009\ >> >> >> >> # Java Main class. This class must implement the WrapperListener >> interface >> >> # or guarantee that the WrapperManager class is initialized. Helper >> >> # classes are provided to do this for you. See the Integration section >> >> # of the documentation for details. >> >> wrapper.java.mainclass=com.sharpbancsystems.ATM.ATMoPOSt >> >> >> >> # Java Classpath (include wrapper.jar) Add class path elements as >> >> # needed starting from 1 >> >> wrapper.java.classpath.1=lib/wrapper.jar >> >> wrapper.java.classpath.2=lib/activation.jar >> >> wrapper.java.classpath.3=lib/ATMoPOSt.jar >> >> wrapper.java.classpath.4=lib/jdom.jar >> >> wrapper.java.classpath.5=lib/sftp.jar >> >> wrapper.java.classpath.6=lib/sqljdbc.jar >> >> wrapper.java.classpath.7=lib/sqljdbc1.2.jar >> >> wrapper.java.classpath.8=lib/xercesImpl-2.6.2.jar >> >> wrapper.java.classpath.9=lib/util.jar >> >> wrapper.java.classpath.10=lib/mail.jar >> >> wrapper.java.classpath.11=lib/mailapi.jar >> >> wrapper.java.classpath.12=lib/pop3.jar >> >> wrapper.java.classpath.13=lib/smtp.jar >> >> wrapper.java.classpath.14=lib/dsn.jar >> >> wrapper.java.classpath.15=lib/imap.jar >> >> wrapper.java.classpath.16=lib/pool.jar >> >> wrapper.java.classpath.17=lib/common.jar >> >> wrapper.java.classpath.18=lib/jpos-1.5.0.jar >> >> wrapper.java.classpath.19=lib/jsch-0.1.40.jar >> >> wrapper.java.classpath.20=. >> >> >> >> #wrapper.java.classpath.19=lib/mysql-connector-java-3.1.12-bin.jar >> >> # >> >> #wrapper.java.classpath.31=. >> >> >> >> # Java Library Path (location of Wrapper.DLL or libwrapper.so) >> >> wrapper.java.library.path.1=lib >> >> >> >> # Java Additional Parameters >> >> wrapper.java.additional.1=-server >> >> wrapper.java.additional.1=-Dcom.sun.management.jmxremote >> >> >> wrapper.java.additional.2=-Dorg.tanukisoftware.wrapper.WrapperManager.mbean=true >> >> >> >> # Initial Java Heap Size (in MB) >> >> #wrapper.java.initmemory=64 >> >> #wrapper.java.initmemory=1024 >> >> >> >> # Maximum Java Heap Size (in MB) >> >> wrapper.java.maxmemory=1024 >> >> >> >> # Application parameters. Add parameters as needed starting from 1 >> >> #wrapper.app.parameter.1=<YourMainClass> >> >> >> >> wrapper.ping.interval=10 >> >> wrapper.ping.timeout=30 >> >> >> >> #******************************************************************** >> >> # Wrapper Logging Properties >> >> #******************************************************************** >> >> wrapper.debug=TRUE >> >> >> >> # Format of output for the console. (See docs for formats) >> >> wrapper.console.format=PM >> >> >> >> # Log Level for console output. (See docs for log levels) >> >> wrapper.console.loglevel=DEBUG >> >> >> >> # Log file to use for wrapper output logging. >> >> wrapper.logfile=logs/ATMoPOSt-wrapper.YYYYMMDD.log >> >> >> >> # Format of output for the log file. (See docs for formats) >> >> wrapper.logfile.format=LPZM >> >> >> >> # Log Level for log file output. (See docs for log levels) >> >> wrapper.logfile.loglevel=STATUS >> >> >> >> # Maximum size that the log file will be allowed to grow to before >> >> # the log is rolled. Size is specified in bytes. The default value >> >> # of 0, disables log rolling. May abbreviate with the 'k' (kb) or >> >> # 'm' (mb) suffix. For example: 10m = 10 megabytes. >> >> #wrapper.logfile.maxsize=500k >> >> >> >> # Maximum number of rolled log files which will be allowed before old >> >> # files are deleted. The default value of 0 implies no limit. >> >> wrapper.logfile.maxfiles=30 >> >> wrapper.logfile.rollmode=DATE >> >> >> >> # Log Level for sys/event log output. (See docs for log levels) >> >> wrapper.syslog.loglevel=NONE >> >> >> >> #******************************************************************** >> >> # Wrapper Windows Properties >> >> #******************************************************************** >> >> # Title to use when running as a console >> >> wrapper.console.title=ATMoPOSt >> >> >> >> #******************************************************************** >> >> # Wrapper Windows NT/2000/XP Service Properties >> >> #******************************************************************** >> >> # WARNING - Do not modify any of these properties when an application >> >> # using this configuration file has been installed as a service. >> >> # Please uninstall the service before modifying this section. The >> >> # service can then be reinstalled. >> >> >> >> # Name of the service >> >> wrapper.ntservice.name=ATMoPOSt >> >> >> >> # Display name of the service >> >> wrapper.ntservice.displayname=ATMoPOSt >> >> >> >> # Description of the service >> >> wrapper.ntservice.description=ATM switching software from Sharp >> BancSystems >> >> >> >> # Service dependencies. Add dependencies as needed starting from 1 >> >> #wrapper.ntservice.dependency.1=MSSQLSERVER >> >> >> >> # Mode in which the service is installed. AUTO_START or DEMAND_START >> >> wrapper.ntservice.starttype=AUTO_START >> >> >> >> # Allow the service to interact with the desktop. >> >> wrapper.ntservice.interactive=false >> >> >> >> >> >> >> >> Melinda Savoy >> >> Sharp BancSystems, Inc. >> >> Senior Java Developer >> >> >> >> * E: me...@sh... >> >> ( O: 817.438.2161 >> >> >> > |