1
votes

I need to create a proxy service scheduler that receive messages of the queue after 5 minutes. like queue produce message either a single or multiple but proxy receieve that messages after interval of every 5 minutes. how can i achieve this only using oracle service bus ... Kindly help me for this

4

4 Answers

0
votes

OSB do not provide Scheduler capabilities out of the box. You can do either of the following:

  1. For JMS Queue put infinite retries by not setting retry limit and set retry interval as 5 minutes.
  2. Create a scheduler. Check this post for the same: http://blogs.oracle.com/jamesbayer/entry/weblogic_scheduling_a_polling
0
votes

Answer left for reference only, messages shouldn't be a subject to complex computed selections in this way, some value comparison and pattern matching only.

To fetch only old enough messages from queue,

  • not modifying queue or messages
  • not introducing any new brokers between queue and consumer
  • not prematurely consuming messages

, use Message Selector field of OSB Proxy on JMS Transport tab to set boolean expression (SQL 92) that checks that message's JMSTimestamp header is at least 5 minutes older than current time.

... and I wasn't successful to quickly produce valid message selector neither from timestamp nor JMSMessageID (it contains time in milis - 'ID:<465788.1372152510324.0>').

I guess somebody could still use it in some specific case.

0
votes

You can use Quartz scheduler APIs to create schedulers across domains.

Regards, Sajeev

0
votes

I don't know whether this works for you, but its working good for me. May be you can use this to do your needful.

Goto Transport Details of your Proxy Service, under Advanced Options tab, set the following fields.

Polling Frequency (Mention your frequency 300 sec(5 min))

Physical Directory (may be here you need to give your Queue path)