Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Receiving email messages using UMS: messages dropped?

JoostAug 1 2013

This is the situation: I've setup User Messaging Service (UMS) on SOA Suite 11g (11.1.1.5.0) to receive messages on a certain email account. I've then implemented a small HttpServlet that uses the UMS API (based on the usermessagingsample-echo sample provided by Oracle) that registers itself with UMS as a listener for that email address upon server startup, and deployed that to WebLogic (10.3.5).

Now consider the following scenario:

1. Bring down the soa server

2. Send an email to the email address

3. Start up the soa server

4. The email that was sent during the soa server down time is never delivered to the listening HttpServlet.

5. After the soa server has started up completeley, send a second email to the email address

6. The second email is delivered to the listening HttpServlet

The problem here is number 4 in the list (obviously).

Here is the configuration of UMS: http://i.imgur.com/vNwkLFZ.png (incoming mail server and port are empty in the screenshot, but they are correctly set, I made an error creating the screenshot)

And the stdout logfile of the soa server: http://pastebin.com/TsDqftXD

A few things to note:

1. Notice that very early on in the soa server startup process (starting at line 60 of soa server logfile) the email address is already checked by UMS, the email popped, and deleted. Before any listening app has had the chance to register itself as a listener (like my HttpServlet test app).

2. Notice that the second email is delivered correctly (starting at line 290 of soa server logfile, the listening HttpServlet responds at line 326)

3. I seem unable to successfully register a listener before the UMS initialization (using deployment order etc.)

4. Calling the synchronous receive() method of the MessagingClient also doesn't seem to retrieve the missed message

What am I missing here? How can I make sure that my app will receive *all* messages sent to an email address, also the ones that are sent during downtime?

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 29 2013
Added on Aug 1 2013
0 comments
239 views