book
Article ID: KB0071778
calendar_today
Updated On:
Description
Resolution:
Description:
==========
When certain TIBCO applications are shutdown and restarted, they won't come up because the port is being held open by RVD process. We had to restart RVD to release the port (we never assign any ports to RVD), to allow the applications to come back online.
This is true for different types of applications: AMX Node, BE Cache/Inf, TRA based - BW Engine, Web Service, TIBCO JVMs with JMX port open, etc.
Resolution:
=========
On the UNIX operating system (OS) when any process is spawned through an application, the process inherits that application’s resources (file/socket descriptors etc.). This can be seen if a RV client application starts an RV daemon automatically instead of the user starting the RV daemon manually before launching the application. In this case, the RV daemon inherits the socket(s) opened by the client application but cannot close the inherited resources. This is the expected behavior with the current RV client implementation on UNIX.
THis issue is due to the RVD being spawned by an application. To avoid this problem, you need to avoid RVD being started by application. You could configure the following to achieve this:
1). Start the RVD at boot time (or manually, before running the applications) with the
-permanent flag so that the RVD will not disconnect if there isn't an application connected to it.
2). Change the application to open the RVD connection immediately at start up before opening any other sockets.
3). Configure your application to connect to the RVD using the string "tcp:hostname:7500" depicting remote RV daemon connection semantics to prevent the application from restarting a RV(R)D .
4). Remove RVD from any directories included in the path environment variable so that application cannot auto start the RVD. Make a special directory,under which there are only two files, RVD and tibrvlisten. Start a dummy RV client tibrvlisten which does not listen to any TCP port. This tibrvlisten listens to an unused subject like “tibrvlisten forRestartingRVD”, so that only this dummy RVapplication (tibrvlisten) can restart RVD automatically, if RVD has died.
Environment:
==========
UNIX
Issue/Introduction
Application port held open by an RVD process.