Quantcast
Channel:
Viewing all articles
Browse latest Browse all 43798

Wiki Page: Resolve CosNotifyChannelAdmin.AdminLimitExceeded Exception

$
0
0
Problem: Product: VisiBroker 8.0 for Java JDK: JDK 1.5 The consumer application has encountered the following exception: org.omg.CosNotifyChannelAdmin.AdminLimitExceeded: IDL:omg.org/CosNotifyChannelAdmin/AdminLimitExceeded:1.0 at org.omg.CosNotifyChannelAdmin.AdminLimitExceededHelper.read(AdminLimitExceededHelper.java:15) at org.omg.CosNotifyChannelAdmin._ConsumerAdminStub.obtain_notification_push_supplier(_ConsumerAdminStub.java:805) Steps to reproduce the issue 1. Create 10 StructuredPushConsumer process to bind to the Visinotify event channel. 2. 10 consumers proxies will be created in the visinotify.dir/default_channel/default_consumer_admin directory. 3. Assume the MaxConsumers specified in the visinotify.dir/default_channel/admin.prop is 10. 4. Kill the 10 StructuredPushConsumer process. 5. VisiNotify process is not aware the 10 StructuredPushConsumer process is killed perpetually or intermittent connection. 6. The 10 consumers proxies will be retained in the visinotify.dir/default_channel/default_consumer_admin directory. 7. When a new StructuredPushConsumer process is started, it will encounter the org.omg.CosNotifyChannelAdmin.AdminLimitExceeded exception. Resolution: The exception occurs when the either the number of supplier or consumer has breached the maximum number as defined in visinotify.dir/default_channel/admin.prop.  The default value is 256 each for both supplier and consumer.  When visinotify is started, the following information (events, supplier and consumer proxies) will be stored in the visinotify.dir.  It allows VisiNotify to resume the sending of events to the consumers when visinotify process is killed and restarted.  However, when a consumer is disconnected from the channel, the information is still kept in visinotify.dir/default_channel/default_consumer_admin directory.    There are two approaches to resolve this issue.  The first approach can be used by the system administrator to allow both new supplier and consumer to connect to VisiNotify. a.    Stop the visinotify process. b.    Delete the visinotify.dir/default_channel/default_consumer_admin or default_supplier_admin directory depending whether the consumer or supplier cannot be started. c.    Start the visinotify process. The second approach is for both the supplier and consumer to do a graceful shutdown by using the appropriate API.  An example is provided for StructuredPushSupplier as shown below: … org.omg.CosNotifyChannelAdmin.StructuredProxyPushConsumer consumerProxy       = org.omg.CosNotifyChannelAdmin.StructuredProxyPushConsumerHelper.narrow(proxy); … consumerProxy.disconnect_structured_push_consumer();   An example is provided for StructuredPushConsumer as shown below: … org.omg.CosNotifyChannelAdmin.StructuredProxyPushSupplier supplierProxy         = org.omg.CosNotifyChannelAdmin.StructuredProxyPushSupplierHelper.narrow(proxy); … supplierProxy.disconnect_structured_push_supplier(); Attachments: vb80-20100331-visinotify-example.zip

Viewing all articles
Browse latest Browse all 43798

Trending Articles