2013年10月1日 星期二

TIBCO RV Daemon 自動關閉

昨晚庫房打來反應 WMS 無法透過 tibco rv 連線到 MES;看了一下系統狀況,發現 rvd 已經不存在了,也難怪 WMS 無法連線。

在這裡必須先說明一下 rvd 的特性,翻了一下原廠文件如下:

The Rendezvous daemon process, rvd, starts automatically when needed, runs continuously and may exit after a period of inactivity.

Usually, the Rendezvous daemon (rvd) process starts automatically. When a Rendezvous program creates a transport, Rendezvous software determines whether a daemon is already listening for connections (as specified by the daemon parameter). If so, the new transport connects to that daemon. If not, it automatically starts a new daemon and connects to it.
However, when the daemon parameter of the transport creation call specifies a remote daemon, the daemon does not start automatically—you must start it manually on the remote computer.

上面說明了,Rendezvous daemon (rvd) 常駐在背景中,一段時間沒有程式連線,將自動被下下來。但當 rvd 未開啟時,本機程式是有能力能將 rvd 重新開啟的,但為什麼 WMS 沒有自動帶起 rvd 呢?

是的,文中提到的 remote daemon ﹝即一台跨網段的主機,透過 tcp 連線到網段內 local 端主機的 rvd,進而使用該 rvd 來進行訊息收送﹞,即紅色字體的說明:如果是透過 remote daemon 的方式進行連線,當 local 端主機的 rvd 被下下來,remote 端的程式將沒有權限將 rvd 開啟。

這個問題之前沒有發生過,原因是不久前 MES 主機換了一台,但 WMS 仍透過 Remote Daemon 的方式連線舊 MES 主機,而舊 MES 主機的 rvd 僅 WMS 在使用,也就是說,只要 WMS 關閉連線一段時間,rvd 因沒人使用被自動下下來,這時 WMS 就會陷入找不到 rvd 也無法開啟 rvd 的窘境。


當下的暫時性解法,就是使用 command 的方式把 rvd 手動帶起,並請 WMS 趕緊進行連線
%>tibrvlisten -service 8585 -daemon tcp:8585 aaa

查看一下,rvd 是否已經開啟
 %>ps -ef | grep rvd
SS   24986  4755  0 10:43:53 pts/0       00:00 grep rvd
SS   24512     1  0 01:18:37 ?           02:32 rvd -listen tcp:8585 -no-permanent

當然,長期的解法,還是得請 WMS 連線到新 MES 主機,因為新 MES 主機的 rvd 是全年無休,且 MES 本身會去使用,所以不會有被下下來的問題。

沒有留言:

張貼留言