Re: Publishing to MQ
Date: Sat, 26 Apr 2008 18:27:10 +0200
Message-ID: <67h3f2F2ocds6U1@mid.individual.net>
On 26.04.2008 03:33, Ravion wrote:
> I have huge number of data coming to my application through a bacth process
> in main frame. Assuming that all this data are available in one table, I
> have a PL/SQL procedure to manipulate the data and do some data massaging
> and put into three tables.
>
> There is a second procedure which processes the rows of these three tables,
> and while the processing is going on, there can be some updates coming to
> these tables through an online application. ( Note that we are processing
> the data got from a bacth. Now we have some rows which are coming to this
> table directly from internet i.e online)
>
> THere is a Java Rule Engine waiting to process the output of the above
> batch. Now my question is how PL SQL can inform Java that the bacth
> processing is complete. This is because Java program will never know when PL
> SQL batch completed its work, and while PL SQL is doing the batch, there can
> be some more rows coming for it to process through online.
>
>
> Is there any event pusblish mechanism i.e JMS way by which PL SQL can notify
> Java that the processing is complete by putting a message into queue? I dont
> want to go for triggers. Please advise the best design possible, thanks a
> million.
Just a few quick random ideas: there is Oracle Streams Advanced Queuing [1] but I doubt there is an easy back channel to your Java app and it's not sure whether your MF can use it.
You could create a table for batch history which contains entries for batch start and end. If there is an entry where end is NULL a batch is running. You could poll that table.
Alternatively, you could start your batches synchronously from your Java application and then you will know when it finishes.
Kind regards
robert
[1]
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/integrat.htm#sthref3346
Received on Sat Apr 26 2008 - 11:27:10 CDT