Unknown Service ID and Unknown sub-service ID

A service id is an integer which uniquely identifies each CORBA service.

A sub-service id is a service id as returned to a client. When the client contacts that service, the service knows which client is making the invocations. This is useful with multiple publishers.

The Unknown Service ID is encountered when a subscriber invokes a ping request using an object reference that is no longer valid for whatever channel the subscriber is pinging. Since this is no longer a valid object reference on the channel server side, the channel server replies with an IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0 which the subscriber interprets as an unknown service ID. If you examine the channel server log, you should see the subscriber being reconnected to the channel immediately after this exception is thrown. If you do not see this, then this is a problem. If you do see it reconnect and the subscriber receives events as expected, then disregard this exception as it is perfectly normal behavior.

How to fix these errors:

1. Modify the "Number of threads" Chanserv thread setting. This is under local/chanserv , Communicator Server Tab. The default value 8. The channel server doesn't typically need more than 20 or 30 threads max . But if you still get the errors you can increase it to higher number

2.Increase the "Wait Limit" on the channels to which the component is subscribing, Use an incremental approach , incrementing by 10 seconds and test everytime to see if the value is OK or not.

3. Increase the number of components threads. i.e. For automator This is in the "Server Initialization and Startup/Startup/Thread Number" property of the automator server.

The general guideline is:

(concurrency * number of channels) + number of channels + ( at least 5 additional threads for orb dispatching) + (1 for LicenseChecker ).

If this is not enough , then you can further incrementally increase the thread number, and test to see if this is OK.

The caveat is the suggestions above work if you're seeing disconnects and reconnects, in which case Unknown Service ID is normal behavior, and the subscriber is taking a very long time to process. If it's not reconnecting, then you need to figure out why the connection model/automator server/third party application is hanging indefinitely or not reconnecting. It may be something as simple as adding a RestartOn to a connection model.

=====================================================================

When addPub is invoked on a channel, we create an object on the channel side to reflect the publisher’s registration(by creating a child object on the existing channel). When this publisher is idle for a long time, chanserv will delete its registration, you will see like “Channel: Removed idle publisher /Projects/DeltaAsToOraAll/1.0/Resources/Channel TargetSource2/Target/-1278259339 (uid=bw,ou=People,dc=denso-wave,dc=co,dc=jp) from channel cn=G2_RecordChannel,cn=Channel,cn=DeltaAsToOraAll,cn=bserv1,cn=Servers.” In chanserv’s log. This long time id 8 hours by default. It is located at vtpubprunetime under chanserv in ldap, its default value is 28800(s).  Normally you need not change it because inactive publisher is wasting resource and it will reconnect as needed later.
When time reach "Unused connection timeout" firstly, connection between publisher and chanserv has to be forcely closed, then publisher (register) automatically removed by chanserv, so there is no "Unknow sub-service ID" occur.
When time reach "publisher prune time" firstly, publisher(register) is removed by chanserv, but connection still open, then there will be "Unknown sub-service ID".
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值