Query about XAResource.end() API in JMS context

Hi All,
I have a small query regarding the behavior of an XAResource supplied by a JMS server.
Suppose I start a transaction using XaResource.start() method and I create a publisher and registered durable subscriber on the XASession that supplied the above mentioned XAResource. After that I send some messages and receive some messages from a Topic that already had some messages for the concerned Subscriber.
Now I end this transaction by calling XaResource.end() with the flag TMSUSPEND.
My question is that can the Publisher and Subscriber objects created between the start() and end() methods of the XAResource object be used now after the transaction has been suspended.
Also now if I resume this transaction can I use these publisher and subscriber objects again without re-creating them.
It would be great if some of the bright people on this forum can share some info on this.
cheers
Adolf

Now I end this transaction by calling XaResource.end()
with the flag TMSUSPEND.
My question is that can the Publisher and Subscriber
objects created between the start() and end() methods
of the XAResource object be used now after the
transaction has been suspended.This is dependend on the JMS implementation. If it falls back into a local transaction context after suspending the current XA tx, then yes, otherwise no.
Also now if I resume this transaction can I use these
publisher and subscriber objects again without
re-creating them.IMO, yes.
However, chapter 8 of the JMS spec (XA/ASF) is intended to use within a J2EE environment. Thus, most of the behavior of JMS XA/ASF is specified in the EJB spec, not in the JMS spec. If you consult both, you'll get the whole picture. Whether JMS XA/ASF works with a specific app server is dependent on the app server's implementation of this part. For example, some use ASF (connection consumers) with callbacks for message/tx association (like the J2EE ref impl), some use ASF without callbacks (like JBoss, WebSphere) so there has to be an automatic association with XAResource.start. Some don't use ASF at all but a message consumer (like WLS). And so on. JCA 1.5 with JMS pluggability uses callbacks.
It's very tricky and time consuming to integrate a JMS server XA/ASF wise into an app server. Every app server is different. Sometimes you'll have to implement proprietary interfaces to plug into it.
We have done that. How it works is here:
http://www.swiftmq.net/products/kernel/jmsxaasf/index.html

Similar Messages

  • Another query about XAResource

    Hi All,
    I have another query about the start/end behavior of the XAResource and its effect on a JMS transaction when the JMS server acts as a resource manager.
    Suppose I start an XAResource supplied by a JMS server using an XID and pop some messages from a Queue in this transaction. Now before I end this transaction my client application dies or is disconnected from the server.
    First off this transaction has not been committed or rollbacked so the transaction or the XID would still be registered on the server.
    In this case what should be the steps for joining this transaction and doing the needful (say commit or rollback).
    What flag should be used to re-start this resource?
    Is there any specs defined for the above or as many other things in XA for JMS servers are, is this also vendor specific?
    Thanks in advance for your answers.
    cheers
    Adolf

    Hi Adolf,
    XAResource is used to provide a two phase commit.
    1 prepare
    2 commit
    now say a client fails before prepare, then the server detects that the client has gone down and so closes the connection which causes the whole transaction to roll back. Next time the clients has to begin it afresh.
    if the transaction has been prepared, the prepared transaction can be actually commited by the TM. this stage is for all the components of the dustributed system to say that they are ready for commiting.

  • A query about blackberry protect... Help..

    i'm the die hard fan of blackberry. Recently i have changed from os 7 to os 10. And i have a query about blackberry protect i.e. for suppose if I lost device, I find a bunch of options in blackberry protect website like lock device, wipe device and locations etc. If somebody steals my blackberry and wipe the device and login with new id and password on blackberry.. Do I have that option still to get access on my lost device? Im so confused how this blackberry protect would work. And freshly some vunarabilty found in high end manufactured phone,beacuse of this type of security app... So, this problem bugs me a lot...  And your valuable relplies always be accepted... @levelup 

    As soon as your device is wiped, Protect is gone. I suggest you lock your device with a password. That way, if you lose your phone you'll have time to wipe it remotely or locate it before anyone can access your phone and wipe it. Protect is a great app but your phone must be turned on and connected to a wireless network and signed in with your BB ID in order to work.
    I hope that helps you.
    - If my response has helped you, please click "Options" beside my post and mark it as solved. Clicking the "thumbs up" icon near the bottom of my response would also be appreciated.

  • ManagedConnection.cleanup called before XAResource.end

    I am the developer for a JCA 1.5 resource adapter named DTPRA. Note that DTPRA works with WebSphere Application Server, WebLogic Application Server and JBoss Application Server.
    I have never tested DTPRA with the Sun App Server, so I downloaded Sun Java System Application Server Enterprise Edition 8.2 (build b25-fcs) to test DTPRA.
    After overcoming a number of other issues, I encountered a problem which has me stalled at this point.
    I tried a simple transaction request. At the end of the �active� phase of processing, the App Server called the ManagedConnection.cleanup method prior to calling to the XAResource.end method. When the XAResource.end method was called later, DTPRA threw the exception because the state was wrong (the managed connection was no longer involved in a transaction). Here is an excerpt from the DTPRA trace:
    06/27/07 13:27:32.340  RA=dtpra        TYPE=FINER   THD=0084e723-service-j2ee       
    DtpInteraction.execute: returning from execute a value of true
    DtpConnection.destroyInteraction: Entering method
    DtpConnection.close: Entering method close (for connectioncom.unisys.dtp.connector.DtpConnection@557c15)
    DtpConnection.closeConnection: no interactions to close
    DtpConnection.closeConnection: connection com.unisys.dtp.connector.DtpConnection@557c15 no longer active
    DtpManagedConnection.fireConnectionClosedEvent: Firing Connection closed event; 1 listeners() registered
    DtpManagedConnection.cleanup: Entering method
    06/27/07 13:27:32.340  RA=dtpra        TYPE=FINE    THD=0084e723-service-j2ee       
    DtpManagedConnection.cleanup: Clean Up Request: 1 connection(s) active
    06/27/07 13:27:32.340  RA=dtpra        TYPE=FINER   THD=0084e723-service-j2ee       
    DtpManagedConnection.cleanup: ManagedConnection cleanup successful
    DtpXAResource.end: xa_end called flags = TMSUCCESS (0x4000000)
    06/27/07 13:27:32.340  RA=dtpra        TYPE=FINEST  THD=0084e723-service-j2ee       
    DtpResourceAdapter.createXid: txHelper is null...
    06/27/07 13:27:32.340  RA=dtpra        TYPE=SEVERE  THD=0084e723-service-j2ee       
    DtpManagedConnection.transactionCompleted: Throwing exception.
    javax.resource.spi.IllegalStateException: XA_END Received but ManagedConnection not currently participating in transaction, error code: NO_TRANS
          at com.unisys.dtp.connector.DtpManagedConnection.transactionCompleted(DtpManagedConnection.java:1014)
          at com.unisys.dtp.connector.DtpXAResource.end(DtpXAResource.java:160)
          at com.sun.jts.jta.TransactionState.beforeCompletion(TransactionState.java:125)
          at com.sun.jts.jta.SynchronizationImpl.before_completion(SynchronizationImpl.java:62)
          at com.sun.jts.CosTransactions.RegisteredSyncs.distributeBefore(RegisteredSyncs.java:120)
          at com.sun.jts.CosTransactions.TopCoordinator.beforeCompletion(TopCoordinator.java:2491) The Sun App Server behavior looks incorrect to me. I reviewed the JCA 1.5 spec (page 6-43 shows a nice diagram), and it looks like the App Server is supposed to call XAResource.end before the App Server calls ManagedConnection.cleanup. This is what DTPRA expects and gets with the other App Servers.

    I set ALLOW_MULTIPLE_ENLISTS_DELISTS to true and restarted the App Server.
    This worked! Now XAResource.end is called before ManagedConnection.cleanup, as I expected. No errors occur and the transactions are committed properly.
    Thanks a lot for your help.
    But now I have some follow up questions:
    1) I searched the Sun document online and did a google. I did not find anything on the property ALLOW_MULTIPLE_ENLISTS_DELISTS. Is this documented somewhere?
    2) At some point I will probably need to document for my users how to use DTPRA with the Sun App Server. But I am wondering what side effects, if any, there are if I were to tell my customers to always set this property when using DTPRA with Sun App Server. Can you tell me more about this property?
    Thanks again!

  • Query about local storage

    Hi,
         i had a query about local storage.
         I've a machine that hosts weblogic and tangosol. i've an ejb that accesses a distributed cache i.e NamedCache cache = CacheFactory.get("MyCache")
         i modified tangosol-coherence.xml and set local-storage to false ( for distributed cache) and replaced the file in coherence.jar.
         i'm using an overflow scheme and the back map uses a disk scheme.
         i also start a separate standalone instance of tangosol and i set the system property of local storage to true for the standalone instance.
         i start the standalone instance first and then weblogic.
         The idea is ensure that the tangosol instance in weblogic or the weblogic JVM should not participate in storing data (hence local storage false).
         only the JVM for the standalone instance should store data (hence local storage true -system property).
         i wanted to know whether the property "local-storage" is pertinent to a member(machine) or to a JVM?
         the reason for this doubt: as i'm using a disk scheme, tangosol creates a file for an overflow (e.g lh014402~.tp). i can see two such files when ideally i would have wanted only one for the tangosol instance.
         -rw-r--r-- 1 zephyr users 8364032 2005-06-23 17:02 lh014402~.tp
         -rw-r--r-- 1 zephyr users 8364032 2005-06-23 17:02 lh014403~.tp.
         can you please let me know if we can configure tangosol in such a way that we can two separate instances running with local stroage false for one and true for the other?
         Awaiting your reply
         Thanks
         Vinay

    I would suggest leaving the default 'local-storage' value set to 'true' in the tangosol-coherence.xml and just use the JVM argument to control the local storage of each individual node. Then start the stand alone instance normally (I assume you are using the com.tangosol.net.DefaultCacheServer) and start the WebLogic instance with the following:
         java [...] -Dtangosol.coherence.distributed.localstorage=false [...]
         Hope this helps.
         Later,
         Rob Misek
         Tangosol, Inc.

  • Initial execution of a workbook/query runs without ending

    Hi, Experts,
    I encountered a very strange behavior of Bex tool. Sometimes, Initial execution of a workbook/query runs without ending at u2018Waiting for reply from BW Serveru2019 state, then I cancel the report and run it again and it would return results within minutes. Itu2019s like it forgot to return results.
    The basis team looked at the queries in the database, and said that there were actually a number of different queries being executed by my Bex query, but each individual query runs fairly quickly. The basis person pulled the statements out and ran them directly against the database and they returned result in sub seconds.
    Any thoughts? Possible solution?
    Thanks
    Chimei

    Hi,
    Could u let us know what is the GUI frontend patch version you are on. Also, are there any AddOn's Installed.
    What version of Excel are you using. Also just for a check, run sapbexc.xla on your local machine and check the output.
    Regards,
    Sree.

  • Help!! I need information about Siemens' PIM API

    Hi everybody,
    I am looking for any information about Siemens API to allow PIM access from a midlet. I did not manage to find specifications about that API on the web...
    Are specifications free ? Is there an environment to develop J2ME applications using Siemens PIM API ? Has anybody developed this type of application on this forum ?
    Thank you very much,
    Dan Ouaki

    I have heard many times about Siemens' PIM API, J2ME compatible, I have read a couple of articles about it (french article www.01net.com/article/181502.html for instance)
    But I have never seen anything about it on Siemens developer portal (Java Wireless, Game API, JSR120, JSR135 are the only non-JTWI supported technologies).
    Is Siemens PIM API a hoax ?

  • Big Troubles on designing Query about special customers' counting

    Hello buddies:
    I meet a problem on designing Query about special customers' counting. Let me describe the requirment first.  I want to create a query with BEX , and there is a key figure with very special logic.
    That is: to list the counts of the customers which has more than one sales records in a time period from sales data. 
    For example :
    when the user excute the query , he or she must input a time period ( 2007.01~2007.03 e.g)
    then the query output as follow:
    District          Cust-sount
    North-Zone       100
    South-Zone      120
    The Main trouble are :
    1. Threr are no document number in the detail of sales data document records. so I could not count the sales times with document number.
    2. The time period is not fixed value, it depends on the user's input, so I can not define the counting logic in the update rule or in the query with fixed time period.
    Anybody who met similar requirement pls show me your hand and give your solutions, thanks very much.
    Jason

    Hi,
        Your solution sounds a good way to count the distinct customers. but in my case, one salse line item must not be recognize as one sales record, instead,  one customer's all sales line items occurs in one day must be  recognize as one sales record ( or we say that one sales behavior).
    for example:
    customer     product    quantity   date
    cust001       prod001        10       2007.06.06
    cust001       prod002        20       2007.06.06
    the two line items above means one sales record for the customer "cust001".
    so I could not simply use the CKF : (( Counter ) *FV2 ) > 1 .
    Best Regards,
    Jason

  • Query about licensing Jdeveloper

    Dear Friends,
    I have a query about licensing of Jdeveloper development tool. I understand that Jdeveloper is Free tool.That is we do not require license to use Jdeveloper for development as well as production.
    Recent I heard that Jdeveloper is free only if we purchase Oracle Application Server. Is it correct ? Does one need to purchase Jdeveloper license if it is being deployed on any other App. server eg. Jboss etc ?
    Can anyone throw light on the same ?
    Many thanks,
    Vaij

    Hi,
    JDeveloper is free! Oracle ADF - the binding layer - ADF BC, and ADF Faces need an OracleAs licence
    Frank

  • Call front-end API from WD ABAP

    Hi experts,
      I'm trying to call font-end API (Destination: SAP_SSFATGUI) from webdynpro. It giving me communication_error but if i call it from ABAP its working. Pls help.

    Hi,
      I try to call API namely ssfrfc which is provided by SAP and located in SAPGUI dir in my desktop. You also will have this API program if you installed SAPGUI. When calling this API using call function....destination 'SAP_SSFATGUI'  via WebDynpro ABAP it giving me communication_error . However no problem when using normal ABAP. Below are the coding.
    METHOD onactionact_exe .
    DATA:   ostr_output_data   TYPE  ssfparms-outtext,
            ostr_output_data_l TYPE  ssfparms-outtextlen,
            crc                TYPE  ssfparms-ssfcrc,
            lv_sysubrc         type sysubrc.
    call C function 'SSFVERSION'
      CALL FUNCTION 'SSFVERSION' DESTINATION 'SAP_SSFATGUI'
        IMPORTING
          ostroutputdata        = ostr_output_data
          ostroutputdatal       = ostr_output_data_l
          crc                   = crc
        EXCEPTIONS
          communication_failure = 1
          system_failure        = 2.
      lv_sysubrc = sy-subrc.
        write:/ OSTR_OUTPUT_DATA,
              / OSTR_OUTPUT_DATA_L,
              / CRC.

  • New issue in R 12.1.3 in AP while query about inovice was recorded in AP

    i record new invoice in ap on release R 12.1.3 and when query about it on invoice form the error appeare was it
    forms
    FRM-40735:POST-QUERY trigger raised unhandled exception ORA-04063
    how can someone help us

    Hi,
    Please see these docs.
    R12:Getting FRM-40735 Post-Query Trigger On Quering Invoice [ID 1209736.1]
    After Applying Patch APXINWKB.fmb Is Not Working [ID 1159124.1]
    R12.1.1 APXINWKB Invoice Workbench Form Comes Up With 'ORA-01403' [ID 949942.1]
    12.1.1: FRM-40735: Post-Query Trigger Raised Unhandled Exception ORA-04063 [ID 1077613.1]
    Query on Invoices, Getting "FRM-40735: POST-QUERY trigger raised unhandled exception ORA-4063" [ID 1076609.1]
    Thanks,
    Hussein

  • My trial is about to end and I have never been able to use this.

    My trial subscription is about to end and I have never been able to use it.
    I had the Adobe for$19.99 a year but when it changed to $19.99 a month I could not afford it.
    I am a pro bono attorney mostly representing battered women and juveniles at risk.
    Occasionally, I really need to turn  a PDF into a Word document.
    So far, it hasn't worked this time.
    Thank you.
    [email protected]

    Hi Suzi,
    I would recommend you to use the Export PDF service instead (The Most Reliable Tool to Convert PDF to Word or Excel | Adobe ExportPDF) available at a price of US $1.99/mo Billed annually at US $ 23.88/year.
    Regards,
    Rave

  • I have one query about table entries.

    i have one query about table entries.
    suppose  for particular table we maintained   5 entries in dev server. actaully in the dev we have only these 5 entries.
    In production we have 200 entries actually.
    If we move the cts from  dev  to production ,we will get 205 entries right
    please help me in this.

    If i understood correctly, It is a Z table and you have done some changes in DEV system. If you move this to Production, it wont effect the production entries.
    There are 2 different ways you can trnasport a Table. 1. with Table entries 2. Without table entries.
    If you transport with Table entries then the DEV entries in this case 5 will be moved to PRODUCTION totaling 205.
    If you transport without table entries, then in Production you will find only 200 entries.

  • Non-durable subscribers persists after the end of their JMS session

    Hi all,
    I'm using OAQ as my JMS Provider.
    I have created code for publishing and recieving messages to/from topics. Messaging works fine, but I have one problem:
    All my non-durable subscribers persists after the end of their JMS session. I always perform unsubscribe operation in code and then closing session and connection.
    When I subscribe to topic, there's one more line in DB table ( etc. NAME: TSUB_1_24E6DB98A2EB7712E040A8C, TYPE: 65). I have expected that subscribers will be deleted after performing unsubscribe operation, but they don't...
    Can you help me with this problem? Thanks for any answer.
    Best Regards,
    Juraj

    Have you found a solution to this yet - because I face the same problem

  • Query about the DR -Standby

    Hi Support,
    I have a query about the DR -Standby:
    1) Is FAL_CLIENT and FAL_SERVER parameter mandatory in both Primary and standy node?
    2) How many standy by we can create for primary node?
    Thanks

    Dear Prashanth,
    Quantity of 3 is rejected so you blocked it? why you want to bring it again to Quality? Use of putting in block is as follows:
    Since quantity of 3  is rejected  and need to be kept aside you are blocking the stock, the purchase person will send back this material to vendor directly from block stock (MBRL or MIGO). This is best practice.
    There can be other situation that your vendor came to your place and done rework om that 3 blocked items and you are satisfied with the quality then you can use respective movement for transferring from block to unrestricted, if you want lot to be generated then assign 08 insp type and do inspection.
    Hope this will help you better.
    Best Regards,
    Shekhar

Maybe you are looking for