Problem:
- Product Name: VisiBroker for C
- Product Version: 4.5.x
- Product Component : Gatekeeper, OAD
- Platform/OS Version: HP-UX 11.1, Windows
The problem can be reproduced on the Windows and HP-UX platforms. Use the bank_agent example with the property files and the following instructions could reproduce the issue:
The property files used are as follows,
gatekeeper.properties:
vbroker.se.exterior.scm.ex-iiop.listener.port=15010 vbroker.se.exterior.host=172.20.20.113 vbroker.se.interior.host=172.20.20.113 #vbroker.se.interior.scm.in-iiop.manager.connectionMaxIdle=3 #vbroker.se.exterior.scm.ex-iiop.manager.connectionMaxIdle=3 # Gatekeeper debug properties vbroker.orb.debug=true vbroker.orb.logLevel=debug vbroker.orb.warn=2 vbroker.poa.logLevel=debug vbroker.agent.debug=true
client.prop:
vbroker.agent.enableLocator=false vbroker.orb.alwaysProxy=true vbroker.orb.gatekeeper.ior=
server.ini:
vbroker.se.iiop_tp.scm.iiop_tp.listener.port=15001 vbroker.se.default.local.manager.enabled=false
Run the following steps to reproduce the issue:
$ osagent & $ oad & $ oadutil reg -poa /bank_agent_poa -cpp Server -a "-DORBpropStorage=server.ini" -p UNSHARED $ gatekeeper -props gatekeeper.properties & $ Client -DORBpropStorage=client.prop
We see that when the client finishes execution, the server is still running. When the Gatekeeper is not involved, the Server shuts down properly.
Also, Using connectionMaxIdle on the Gatekeeper did not make any difference (properties that are tried and not effective are showed as comments in the gatekeeper.properties file).
Resolution:
The issue is filed as failure 38264: Server spawned by OAD using UNSHARED activation policy and using Gatekeeper not terminated when client finishes execution.
To workaround the issue, the application could perform orb.shutdown() on the Server explicitly called by the Client. Please refer to the /vbroker/examples/dynany example on how a Client can shutdown a Server.
#Security
#VisiBroker




