Transactional Messaging Problem

Hi,
The problem I am facing is, I have multiple publishers that can send the same type of messages to the topics and mutiple subscribers are receiving the messages (many-to-many). Suppose the publisher makes changes to a database row, and then send a message to the topic reflecting that change. At the same time, another publisher makes changes to the same database row and then send a message to the topic. If there is no transaction involved on the publisher side, it is possible that the second publisher's message arrives at subscriber side first. This could potentially cause trouble on the subscriber side. How can I guarantee the order of the messages published into the topic? In a situation where message service is down and my publisher has the ability to resend the message after service is back alive, the message it is sending will obviously out of order. So what is the best approach to this kind of problem? How can I ensure the right order delivered to the other end of message pipe? Thanks.

Hi,
You are right by saying that updating your database and publishing your messages within the scope of a transaction will solve your problem. But however, you need to use the right database transactional model. The best one to go for is the strict serialisation model that will guarantee you that write operations are strictly done sequentially and then that your messages are published in the right order. Note that this model has a certain degree of overhead that you may be able to relax so that to improve performance.
On the messaging side you will need to use a XA compliant JMS provider as well as a transaction manager. You can achieve that by using an app server or you can use a MDS (message driven service) container. For example, Arjuna provides such a container (http://www.arjuna.com/products/arjunams/tutorials/mds/index.html) that is roughly speaking a light weight MDB container that provides you with concurrent message processing as well as container managed transactions. The MDS container comes with a full JTA compliant transaction manager.
Note that in the event of a database or a JMS bus failure you will rollback your transaction and take the necessary action that could simply be re-trying later or waiting for the faulty resource to reboot.
Hope this helps,
Arnaud
www.arjuna.com

Similar Messages

  • Continuing the "status message problems" issue...

    in response to ralph johns suggestion to delete the buddy list file from my library to solve the outdated status message problem...
    RJ- haha.. i'm not sure i'm going to try the "beat it with a stick" approach quite yet.. i think i found out whats causing the problem. when i would use iChat on campus using our school's wireles, i didnt have the problem of outdated status messages. but when i come home, i do.. and i believe the reason is because i'm using a Belkin G Wireless router. although i do hard line, i'm almost positive this is the problem. i did some research online and it isnt one of the approved routers for iChat.
    so is my only option to buy a new compatible router to solve the problem? or is there somewhere i can go that can tell me what ports to open for a belkin router?? we're getting close... i can feel it!!! haha thanks..
    -brent

    Hi Anders,
    in order to quickly fix that problem, I would just adapt the provisioning function where the warning shows up and make sure that the function uError is called so that an error is created instead of a warning.
    Are you using the SAP Provisioning Framework or a custom provisioning framework. Which repository are you using?
    Best regards
    Holger

  • "Blocked plug-in message" problem on my OS X 10.6.8. (Safari's 5.1.10). Any solutions for a non-techie (step 3 on Adobe Flash's instructions leads to dead end). Thanks.

    "Blocked plug-in message" problem on my OS X 10.6.8 (Safari's 5.1.10). Any solutions for a non-techie (step 3 on Adobe Flash's instructions leads to dead end, i.e. product for sale). Thank you. 

    Prior to updating flash player, you must first uninstall all previous versions.  Make sure you are downloading from the proper Adobe website = Adobe Flash Player Software
    Flash Player Uninstaller
    Repair permissions and restart your computer after the installations.

  • HT1349 Hi all,I have just purchased new iphone but have difficulty in completing the itunes download with message : problem with Windows installer package. A program run as part of the setup did not finish as expected.

    Hi all,I have just purchased new iphone but have difficulty in completing the itunes download with message : problem with Windows installer package. A program run as part of the setup did not finish as expected.
    Would appreciate help...its driving me up the wall!!

    Perhaps let's first try updating your Apple Software Update.
    Launch Apple Software Update ("Start > All Programs > Apple Software Update"). Does it launch and offer you a newer version of Apple Software Update? If so, choose to install just that update to Apple Software Update. (Deselect any other software offered at the same time.)
    If the ASU update goes through okay, try another iTunes install. Does it go through without the errors this time?

  • I get message, Problem scanning. Something went wrong. Please try again.

    My printer was working fine when scanning, but now I get a message: 
    Problem scanning.  Something went wrong. Please try again. I turned my printer off, rebooted my computer...updated the printer from hp website...but nothing.  I can see the document in preview, and I hear the scanner working.  HELP!!

    Hey there @leandermw , Welcome to the HP Forums
    I understand you're having scanning problem with your Deskjet 2540, on Windows 8.1 and would like to help you.
    I would first suggest that you run the Print and Scan Doctor, and choose "fix scanning" to see if the tool can correct the issue. Send me the results in your reply as well.
    If you have the printer connected to a network, either wireless or ethernet, try power cycling the network devices:
    Turn off the printer and computer and unplug the router for 1 minute (do not press any buttons on the router).
    Plug the router back in and wait another minute, next turn on the printer and computer and try scanning.
    You can also power reset the printer itself:
    Press the Power button to turn on the product.
    With the product turned on, disconnect the power cord from the rear of the product.
    Unplug the power cord from the wall outlet.
    Wait at least 15 seconds.
    Plug the power cord back into the wall outlet.
    Reconnect the power cord to the rear of the product.
    If the product does not turn on by itself, press the Power button to turn it on.
    Ensure the printer is plugged in directly to the wall outlet, avoiding power bars and surge protectors. This ensures the printer is receiving full power and may help greatly.
    Try scanning from the HP scan software on your computer, and also make a copy from the front of the printer.
    Write me back with the results
    R a i n b o w 7000I work on behalf of HP
    Click the “Kudos Thumbs Up" at the bottom of this post to say
    “Thanks” for helping!
    Click “Accept as Solution” if you feel my post solved your issue, it will help others find the solution!

  • You did not select all the docs belonging to the cross-co code transact Message no. F5876

    Hello All,
    When Cross company document is reversed with FBU8, Only one (1) leg is reversed and another (2) is not.
    For internal audit purpose, when any document is reversed, User should attach some proofs and then he should reverse it.
    When I tried to reverse only (2) leg through FBU8, I am getting this error – “You did not select all the docs belonging to the cross-co code transact Message no. F5876”.
    Pls give me some inputs how to reverse (2) leg.
    Thanks

    Hello Kalim - I am getting error message. We can not make it to warning message, though we have option in OBA5.
    Any other alternatives?
    Thanks

  • Trying to upgrade to 10.6 so my iPhone could synch...I'm getting this error message "Problem with this Windows (XP) Installer package.  A program required for this install to complete could not be run."  Any ideas?

    I had iTunes 10.2.1.1 but needed to upgrade to 10.6 so my iPhone could synch...I'm getting this error message "Problem with this Windows (XP) Installer package.  A program required for this install to complete could not be run."  Any ideas?

    This has been fixed.  Answer is that I needed to go to "Apple Software Update" and repair it.  (From my Control Panel).

  • Hidden "saving error" that send "Succesfully Transaction" message

    Hidden "saving error" that send "Successfully Transaction" message
    I wanted to make an n-level nesting solution. With just one Service file that would be manually edited at the end.
    First I made n Master-detail tabs. The Master of the i+1 tab was the detail of the i tab. I tested separately. Every one of them and they inserted, updated an so on very well..(of course!!)
    After I replaced on the MVC File every GetDataSource with getChildDataSource. I included the aditional parameter required by the getChildDataSource, i mean de Master datasources reference and the infotable Master key.I made the same with the Save.
    This didn't work in an strange way. After I made a saving test the browser screen show a "Success" message but the database haven saved the new record.... Why if the transaction is not successfully I receive the success message? I tested fort apart (using the BC4J app Module "test" and the records was updated correctly..of course without the Master Detail stuff..)
    Am I missing another postgeneration task.. At least may I to generate some error in order to start the investigation about what am I doing wrong??.

    Have a look at the sample PL/SQL TCP code I posted (using the POP3 protocol) in [url http://forums.oracle.com/forums/thread.jspa?messageID=2018101#2018101]this thread.
    Pay particular attention on how the loop, receiving socket data, is constructed.
    In future, please always include:
    - exact error details (we have no idea what error you are running into)
    - Oracle version (full version details down to the very last digit)

  • !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".

    Hi experts,
    when in Design Studio, I have selected, Tools, Preferences and then Backend Conections, appears this problem with eclipse,
    What happend?,
    Thanks in advance,
    !ENTRY org.eclipse.jface 4 2 2014-05-27 12:37:08.751
    !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
    !STACK 0
    java.lang.NullPointerException
      at com.sap.ip.bi.zen.connectivity.ConnectivityPlugin.getRouterDescription(ConnectivityPlugin.java:68)
      at com.sap.ip.bi.zen.ui.internal.preferences.SapLogonLabelProvider.getColumnText(SapLogonLabelProvider.java:24)
      at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:70)
      at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:152)
      at org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:400)
      at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:485)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
      at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
      at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2167)
      at org.eclipse.jface.viewers.AbstractTableViewer.createItem(AbstractTableViewer.java:278)
      at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:758)
      at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:650)
      at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:637)
      at org.eclipse.jface.viewers.AbstractTableViewer$2.run(AbstractTableViewer.java:593)
      at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
      at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
      at org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(AbstractTableViewer.java:591)
      at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
      at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
      at com.sap.ip.bi.zen.ui.internal.LocalUihandler.createUiForBWConnectionsFromSapLogon(LocalUihandler.java:162)
      at com.sap.ip.bi.zen.ui.internal.LocalUihandler.createUiForPreferencePageBackendSystems(LocalUihandler.java:119)
      at com.sap.ip.bi.zen.ui.internal.preferences.PreferencePageBackendSystems.createContents(PreferencePageBackendSystems.java:88)
      at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:232)
      at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1502)
      at org.eclipse.jface.preference.PreferenceDialog$14.run(PreferenceDialog.java:1259)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
      at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
      at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1253)
      at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675)
      at org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:709)
      at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
      at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:705)
      at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
      at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
      at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886)
      at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1726)
      at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1139)
      at org.eclipse.jface.preference.PreferenceDialog.selectSavedItem(PreferenceDialog.java:1055)
      at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.selectSavedItem(FilteredPreferenceDialog.java:730)
      at org.eclipse.jface.preference.PreferenceDialog$4.run(PreferenceDialog.java:376)
      at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
      at org.eclipse.jface.preference.PreferenceDialog.createContents(PreferenceDialog.java:372)
      at org.eclipse.jface.window.Window.create(Window.java:432)
      at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1104)
      at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.createDialogOn(WorkbenchPreferenceDialog.java:102)
      at org.eclipse.ui.dialogs.PreferencesUtil.createPreferenceDialogOn(PreferencesUtil.java:192)
      at org.eclipse.ui.dialogs.PreferencesUtil.createPreferenceDialogOn(PreferencesUtil.java:116)
      at org.eclipse.ui.internal.handlers.ShowPreferencePageHandler.execute(ShowPreferencePageHandler.java:57)
      at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
      at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
      at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
      at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)
      at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
      at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)
      at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
      at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
      at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
      at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:850)
      at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:743)
      at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:727)
      at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:662)
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
      at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
      at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
      at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
      at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
      at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
      at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
      at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
      at com.sap.ip.bi.zen.ui.internal.application.ZenApplication.start(ZenApplication.java:36)
      at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
      at org.eclipse.equinox.launcher.Main.run(Main.java:1450)

    I just tried it on my machine; no issues in Local mode
    I recommend opening a ticket/incident with SAP Support to better troubleshoot what the issue might be.
    Be sure you installed the support pack with 1.2 and not the new install

  • Unbalanced Transaction [ Message 131-91 ]

    Dear All Experts,
    Iam getting error Unbalanced Transaction [ Message 131-91 ] when im adding Draft A/R Invoice.
    This A/R Invoice has been made from the Sales Order.
    Regards,

    Hi
    Rounding Method:
    By Currency:
    It means, we can round the document total as manually. For eg., in setting if u select this method, each and every document u can see rounding field Below the Total before Discount, freight and Discount.
    Then u can tag that it an Miscellaneous Expenses account.
    By Document:
    Vice versa. U cannot tag to any account.
    Giri

  • Unstalled 4.0 will not open get message, problem loading page, offline try again, useless won't open, help

    I installed 4.0, it wouldn't open, not even in safe mode, not in any mode; it wouldn't open at all. So I installed it again,(no I didn't uninstall it first, first,I couldn't , ti wouldn't let me.) wi I tried opening the second one, the page would come up, but I got the message "problem with loading", work off line, try again. (tried many times)I was able to uninstall this one, or both, it was gone. So I searched for and found 3.6.17 and installed it, Goal, score, it works, my tool bar is just as it was, great... this is the rub, Mozilla/Firefox, no longer supports 3.6.17, so I have to change/upgrade. Can someone tell me how????? System runs windows XP, system is about 8 or 10 years old, some upgrades, but I think only to the memory, any help would be greatly appreciated.
    thanks so much

    Clear Cookies & Cache
    * https://support.mozilla.com/en-US/kb/Template:clearCookiesCache
    Clear the Network Cache
    * https://support.mozilla.com/en-US/kb/How%20to%20clear%20the%20cache#w_clear-the-cache
    Firefox cannot load websites but other programs can
    * https://support.mozilla.com/en-US/kb/Firefox%20cannot%20load%20websites%20but%20other%20programs%20can
    Check and tell if its working.

  • Picture messaging problems for EnV 3

    In the past few days, I have been having picture messaging problems. When a Non-Verizon person sends me a picture, it says connecting (as it should) but just continues to say connecting. I never receive the picture. It just says failed if I let it continue to connect. When I receive a picture message from a Verizon person, it also says connecting and I allow it to go until it stops. It never shows a loading bar like it used to but the "connecting" screen will eventually disappear and I can view the picture. It works but, its very slow and it doesn't show the loading bar like it used to.
    I also have problems sending picture messages. Again, the connecting screen comes up when sending a picture but no loading bar. I usually let it go for 30 seconds and I'll end up cancelling it. BUT, a friend of mine did end up receiving the picture even though it never said message sent on my phone.
    Any help with these problems? I haven't done anything different than I used to and I have had the phone for almost a year and a half now. Everything has been fine until now.

    Yay!! It's so nice when it's a simple fix!
    You can do the *228 reset every month or so just for maintenance and to keep your phone updated.

  • Has any one else tried calling LG about the messaging problems with the G2?

    They told me it was a Verizon software issue.   That they only supply the hardware.

    What messaging problem are you having?

  • Skype messaging problem

    Okay, so I was offline when this message. A friend named Anastasia sent me a message. "Настенка, ты на работе еще?" It just means, "Nastenka, are you at work yet?" So I logged in two weeks later and the message popped up. Настенка was the only word I didn't know so I asked my friend what it meant and she replied, "its my name!!! Where did you see it?!". So I copied the message and showed here that she wrote the message. She told me she didn't have any friends named this and that there's only one person that calls her Nastenka, her boyfriend. I don't know her boyfriend, nor have his account information.
    So how could her boyfriend send a message to me, from her account asking her if she was at work yet? Is this a glitch? It's pretty unsettling if Skype can't deliver messages properly.

    There is probably a better forum to  put this in other than hardware.  In any case,  since I've used Skype for many years I haven't had any serious messaging problems (other than latency).  I have however learned a few things.  
    1.  If Skype is configured to "Allow anyone to send IMs to me".  You can and will get spam from anyone and they don't have to be in your contacts.
    2.  Sometimes name are a coincidence,  other times generated based off whatever a program/bot leeched off the internet.  So if there are a lot of references to "Jack and Jill" and your name is Jack you might get contacted by a random person on Skype named Jill trying to get personal info from you.
    3.  If you or your friend has never logged onto the machine, some old messages will sync/pop-up randomly to Skype in an effort to "catch up".  This is more prevalent if you run Skype on multiple machines.  Some computers running Skype may have one half of a conversation and the other one may have the other half.
    4.  As long as you are logged into Skype you will receive message (Online, Offline, Invisible, etc.).  If someone sent you a message earlier, the IM's will flood in either as soon as you logon or when Skype decides to finally "catch up".
    5.  People can be nosey, insecure, or computer illiterate.  If either your friend or her boyfriend had access to her account from his phone or computer (at any time) they may choose to contact everyone on their contact list in order to find/contact their significant other.   If the boyfriend knows your skype name and number 1 is true, he could Skype you from his own account or an alternate account.
    Take the above into consideration.  Based off your situation, it doesn't appear to me to be a glitch, but one never knows.

  • Assemble components -xml message problem

    Hi,
    In our 5.2.3.1 we have following problem.
    We are assembling components with assemby message:
    Sometimes we have not all the identifiers received to the system.
    These cases the assembly message returns an error but it assembles part of the components in the message. That is not wanted way of working. After error we should be able to receive the missing component to the system and send the assembly message again. But now part of the components have already been assembled and the assembly message will fail:
    No quantity left to assemble for the specified location (Message 13971)
    Is there any way of preventing partial assembly of components in this case?
    Br,
    Pete
    Edited by: Petri Kauppi on Jun 7, 2010 1:32 PM
    Edited by: Petri Kauppi on Jun 7, 2010 1:35 PM (xml- messages with are not show correctly, removed example messages)

    Problem was so long ago...
    If I remember correct there were added new tags to XML -message. Something like ALL_OR_NOTHING.
    TRUE/FALSE
    With this tag we can prevent partial assembly by setting it TRUE.

Maybe you are looking for