How to automatically remove "not connected" Client Queues

I am trying to see if we could automatically expire the clients which are statused “not connected” so that we dont have to manually get in and remove the queues with bunch of documents but are not connected.

Thanks in advance.

Ramesh Kuruba.
rameshku@insolexen.com

Hi ramesh

Check the properties of the clientgroup - the lifecycle should be destroy on disconnect - your clientgroup is probably set to have an explicit destroy lifecycycle.

Regards

Paul

Paul,
Thanks It is set to explicit destroy.

What are the implications of having destroy on disconnect for client group in Production environment is it advisable to have “Integration Server” Client Group as “destroy on disconnect” in production. I will go through the documentation but just wanted to know if you have information of the bat.

Paul, How can we change the lifecycle parameter for a client group? I can not do it through Broker Admin console.

Hi Ramesh

I dont think you can modify a clientgroup once it has been created. What version of the Wm Broker are you using? You may have to recreate the clientgroup and allow the clients to reconnect with the modified client groups.

You could write a client using the API available to disconnect the clients that are not connected and have an empty queue which you could run automatically.

You should use Explicit destroy if you need to maintain state information in the broker between connections and destroy on disconnect for those that dont need to maintain any state - refer to Webmethods Broker Administrators Guide (v.6.0.1) p. 87

Thanks for your inputs paul.

I would look into creating a client using Broker API. Defnitely I think we need to go for explicit destroy in Production environment as we want to preserve the state information but in Dev and QA we go for destroy on disconnect.

Java Code works great!!

Below are main APIs called. BrokerAdminClient, getClientIds, destroyClientById.

BrokerAdminClient myClient = new BrokerAdminClient(HostName, brokerName, idclient, “admin”, “IntegrationServer”, null);
clientIds = myClient.getClientIds();
myClient.destroyClientById(clientIds[index]);

Solved the problem. Thanks guys.

Ramesh Kuruba.
rameshku@insolexen.com