Queuing an event

Hi, I’ve defined an event, I can subscribe to it, and publish it, but what I want is to publish the event, have it queued indefinitely at the server and only collect it when I’m ready. This doesn’t seem to happen for me. I’m using VB for this experiement.

I CreateBrokerEvent(“scope::eventName”)
populate the fields
PublishEvent

The event Storage type is set to guarenteed.

if I have a subscription (.NewSubscription) the event is collected and dealt with. If I Subscriptions.CancelAll, and try GetEvent(1000), I get nothing. The event appears to have been disposed of.

I’m guessing I’ve just missed something fundamental.

Thanks

In Manager, under Clients, there is a column for Queue length. How do I programmatically make this queue increase in length?

BrokerClients have a property called
.AllowAsyncEventArrival, which when set to False queues the events, including Subscribed and addresseed (replies)

The server will never queue an event (aka, document) in the sense I think you use. If there are no subscriptions, the event is lost.

There are things you can do. This is one I would do.

Create a special subscription for this purpose, create a client for this purpose using the subscription, making the event guaranteed delivery and the client persistent. It is in the queue for this client until you read it … as indefinitely as you wish. Create other clients for the other purposes.

Mark Thomsen
Alodar Systems, Inc.

Yes, absolutely! Conceptually, it seemed logical to me that the events would/could exist on a central queue somewhere waiting for a client. Once I understood that client connections are not analagous to a network client being connected, and once I found .AllowAsyncEventArrival everything fell into place.

I am not able to find AllowAsyncEventArrival property in Brokerclients through enterprise manager.My manager version is 5.0.1.