Article

Intermittent NullPointerException when starting the AdminServer

« Go Back

Information

 
Article Number000047299
EnvironmentProduct: OpenEdge
Version: 11.3, 11.4, 11.5
Platform: All supported platforms
Other: AdminServer
Question/Problem Description
Intermittent NullPointerException when starting the AppServer.
The issue has been reported on CentOS 5 / Red Hat 5, CentOS 6 / Red Hat 6, and Suse Linux 11.
This issue happens less frequently on CentOS 6 64 bit,  and on Suse Linux 11 with service pack 2 or 3.
Also, t
he issue occurs less frequently when Java 1.6 is used instead of the default Java version 1.7 that is supplied with the OpenEdge 11.3, 11.4 or 11.5 installations.
Steps to Reproduce
Clarifying Information
The following messages are recorded in admserv.log file after restarting the AdminServer:​

[2017/01/09@07:53:13.224+0300] [3] [OpenEdge] Failed to start Service
[2017/01/09@07:53:13.224+0300] [3] [OpenEdge] Undefined server.start.retryInterval property
[2017/01/09@07:53:13.224+0300] [3] [OpenEdge] Undefined server.start.retryCount property
Error Message(from admserv.log)

[1/10/14 3:50:31 AM] [3] [OpenEdge] /usr/progress/dlc113164/bin/jvmStart -d -w /test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test/test -o stdout -e 2 /usr/progress/dlc113164/jdk/jre/bin/java -classpath /usr/progress/dlc113164/jre/i18n.jar:/usr/progress/dlc113164/jdk/lib/tools.jar:/usr/progress/dlc113164/java/progress.jar -DInstall.Dir=/usr/progress/dlc113164 -Djava.security.policy=/usr/progress/dlc113164/java/java.policy -DCanonicalName= com.progress.ubroker.broker.ubroker -t AS -i asbroker1 -r rmi://machineName:22000/asbroker1 -f /test/test/test/test/test/test/test/test/ubroker.properties

[1/10/14 4:46:32 AM] [3] [OpenEdge] * Exception executing jvmStart:
[1/10/14 4:46:32 AM] [3] [OpenEdge] * java.lang.NullPointerException

[1/10/14 4:46:32 AM] [3] [STDERR] java.lang.NullPointerException
[1/10/14 4:46:32 AM] [3] [STDERR] at com.progress.ubroker.tools.SvcControlCmd.startService(SvcControlCmd.java:327)
[1/10/14 4:46:32 AM] [3] [STDERR] at com.progress.ubroker.tools.UBRemoteCommand.runIt(UBRemoteCommand.java:353)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.reflect.GeneratedMethodAccessor60.invoke(Unknown Source)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[1/10/14 4:46:32 AM] [3] [STDERR] at java.lang.reflect.Method.invoke(Method.java:601)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.rmi.transport.Transport$1.run(Transport.java:177)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.rmi.transport.Transport$1.run(Transport.java:174)
[1/10/14 4:46:32 AM] [3] [STDERR] at java.security.AccessController.doPrivileged(Native Method)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
[1/10/14 4:46:32 AM] [3] [STDERR] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
[1/10/14 4:46:32 AM] [3] [STDERR] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
[1/10/14 4:46:32 AM] [3] [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
[1/10/14 4:46:32 AM] [3] [STDERR] at java.lang.Thread.run(Thread.java:722)
Defect/Enhancement NumberDefect PSC00288458
Cause
Interaction or contention issue between JDK 1.7 and OpenEdge Java code.
Resolution
Upgrade to OpenEdge version 11.5.1 or later. 

For OpenEdge 11.4 hotfix 11.4.0.014 and higher can be used to address this issue. Please contact Progress Technical Support if you need access to this hotfix.

For OpenEdge 11.3.3 hotfix 11.3.3.022 and higher can be used to address this issue. Please contact Progress Technical Support if you need access to this hotfix.

The above fix only prevents the NullPointerException from occurring, but not the interaction/contention situation, which is Java-related, and therefore the following changes also need to be implemented:
 
Once the fix is applied, the $DLC/properties/AdminServerPlugins.properties file needs to be edited under the [PluginPolicy.Progress.AdminServer] section by adding the following to the end of the 'jvmargs' string:

jvmargs= <current settings> -Dserver.start.retryInterval=30 -Dserver.start.retryCount=3

Those settings will cause the AdminServer to attempt a restart after 30 seconds (in case of the interaction/contention situation), and it will retry an unsuccessful restart every 30 seconds (up to 3 times).
Workaround
 
 
Notes
Attachment 
Last Modified Date4/14/2018 6:58 AM


Feedback
 
Did this article resolve your question/issue?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025