I have a JDBC adapter notification that polls (once every 5 seconds) a buffer table (Oracle 8i). This table is updated almost constantly (40 to 50 times every 3 seconds). Currently, my adapter notification will publish a document for every single new insert or update to this table. I would like the notification to be able to bundle multiple database records into a document list and publish that.
For example, if the notification polls the buffer table and pulls out 20 new records, I would like for a single document to be published, which contains all 20 records.
I would prefer this way for two reasons:
- Limit the overhead of publishing thousands of excess documents.
- I would like for a webMethods trigger to be able to pass this published document list to a flow service for batch insert into another table.
Hopefully that made some sense. The bottom line is this: Can a JDBC adapter notification publish a document list instead of just a document?
I don’t have any answer for you unfortunately, but maybe you can help me. I have created me JDBC Adapter Connection successfully. Thereafter I created a Polling Notification service that should publish a document when any insert is done on my specified table. After enabling my Notification and doing an insert on my table, nothing seems to be happening. Or at least the IS doesn’t seem to recognize the insert as a trigger to the notification service. I can see the adapter doing the polling action every x seconds, but it doesn’t publish the document.
How did you do it? I followed the Adapter User Guide, but no luck.
Hi DJ - Here are a couple thoughts. Did you do a “commit” after inserting the record? Is the notification “enabled” in the JDBC Adapter Admin page? Do you see the 3 objects that an Adapter Notification creates on the host database (sequence, table, trigger)? Sometimes these objects don’t get created properly.
Is your DB table have enough privileges for polling trigger, synonymous etc…for the WM user which you have created the JDBC notification?
Thanks for the responses,
I solved the problem. You wouldn’t believe it (perhaps you would) but I do to insert statements on two different tables before I commit and therefore the Insert Notification Poll doesn’t get triggered. Only when I do one insert and a commit, does it work. I pressume that you would have the Ordered Notification Poll for more than one insert.
Jerry, I am using 6.0.1 so my statement is based on that, 6.1 may have new toys for getting this done. The data in each record represents fields to the trigger. The trigger does not have a way to test on the index level and so you could not do “give 20 documents if document = 2”. I think you would have to take the approach of creating a singleton style document list that is used on each service call. There is not any unit field that would say all these records where pulled together. You can just have the singleton use an internal counter based on access count. It will leave the current list and make a new one to return after a certain threshold (35 records or 17 seconds). That would give you the batching you desire.
To Summarize this solution:
- Create a Static Class (Progressive-Singleton) that has an internal field of IData.
- On each trigger, let the service save its data to the returned IData.
- After some limit, the Singleton would pass its IData to a service directly to publish its data for batch processing.
- It will create a new IData for the next set of trigger calls.
That should work for you. Oh, I just noticed how extremely old the first post was, oh well, someone else may be able to use it. Good day.
i don’t now java how to create soap service i.e request and responce service,
Pls help me