SMQ2 -  "Transaction Executing ...." for ever ...

Hi,
From time to time, we get blocked queue with status RUNNING ...
When we introspect the queue, we see a bunch of transactions that has the status : Recorded…  but the very first one has the status : <b>"Transaction Executing ..."</b> and if we do not manually unblock the queue, it stay in that mode for ever ...
Any one has seen this situation ...
Merci A+ M.Osborne

Hi Ananth,
At the first place we suspect the following 4 RFC
- AI_RUNTIME_JCOSERVER
- AI_DIRECTORY_JCOSERVER
- LCRSAPRFC
- SAPSLDAPI
And the are all working perfectly ;-(
(ref.:http://help.sap.com/saphelp_nw04s/helpdata/en/be/6e0f41218ff023e10000000a155106/content.htm)
We are in HA mode with the SAP Web Dispatcher. Do you think, since the AFW talk to the IS via HTTP (thus going via the SAP Web Dispatcher) that could cause the problematic?  (We have check the SAP Web Dispatcher + ICM logs and we see nothing ...)
It has happens with a JMS to IDOC scenario. We have suspect that the R/3 backen system was up to it’s limit (WP wise), but the its running also idle.
Then it has happened with a very simple (with 4000 messages) JMS to JMS scenario.
Help help
Thank in advance !
m.Osborne A+

Similar Messages

  • Transactions executable for user

    Hello,
    Quite often our users do not know what transactions they can run.  How can they produce list of transactions that their roles include if they do not have access to SUIM.
    Thanks
    Galina

    As an after thought:
    >> Quite often our users do not know what transactions they can run.
    You can create a custom menu for them, which includes those tcodes which are tested and documented to need. That way they are less confused and adventure inclined...
    You can even deactivate the standard menu, so that they stick to their roles, and do not confuse themselves and you with requests for 'TCD' access, the functionality of which they already have (but have found a new place to click in the wrong menu)...
    If you search this forum for SSM_CUST and the user_menu table, then there are some good posts already from people such as Morten Nielsen (sp?), Alex Ayers and many others (I cannot remember all of their names and posts, but you will find them again using the search).
    Kind regards,
    Julius

  • How to restrict executing tcodes in transaction tab for master clients

    This question applies SOLMAN project implementation tools: SOLAR01, SOLAR02 and so on.
    Our ERP2005 development U50 system has two clients:
    One is master client 101 where all customizing should take place  but no transactions are allowed
    second client 102 works as sandbox client where new customizing can be test and master data and transaction are allowed.
    Only U50/101 is defined in Solution manager SMSY in system role 'development system'. Currently U50/102 is not defined in Solution manager to any system role at all.
    As configuration should take place via Solution manager,  the consultants use SOLAR01 and SOLAR02 in system role 'development system' meaning that they are connected to U50/101 if want to execute transactions in transaction tabs or IMG nodes in Configuration nodes.
    But U50/101 is our MASTER client and no transactions nor most master data are allowed in there. We want to keep it clean. How can I avoid tcodes being executed in system role 'development'. I want to allow consultants use tcodes if they change to system role 'quality system'. But they might forget to change the system role before executing the transaction.
    Is there an option in Solution manager Project implementation tools that do not allow tcode launch from transaction tabs when system role is 'development system'.
    Of course I can restrict tcode execution with authorizations in satellite systems, but then I would need to disable authorizations for each tcode possibly being used. So I don't like that option.
    br: Kimmo

    Okay, I'll continue dialog with myself. I found solution how to assign other clients on one system to other system roles, which are so-called 'customer roles'.
    See solution manager help:
    http://help.sap.com/saphelp_sm40/helpdata/en/3b/8be61c54d22945837fd69861d21a08/content.htm
    I did not know until know, that system roles are actually customizable. The roles with letter P,D,C,T,E, etc. are reserved for SAP but you can create your own system roles into table SMSY_ROLES. You would not do it with SM30, but from tcode SMSY and following menu Utilities-System Settings->tab:System Roles. Switch to change mode. Roles with 0-9 are available for "customer roles". Choose role type and write your own description ( like: Sandbox client in development system ).
    Now the new role is available in SMSY. But You cannot see it yet in SOLAR_PROJECT_ADMIN/System Landscape tab. In there you must press button 'System role assignment' and in the opening window add your own 0-9 role defined earlier and save. Now you see your new role in 'system landscape' tab and you can assign systems to it like you had done with SAP standard roles.
    Now users using implementation tools can change their current system role to your new 'customer role'.
    But what it comes to my original problem (see title), that still remains. I have debugged the tcode execution from transaction tabs and don't see any possible way to avoid tcodes being executed for an unwanted system role. An Enhancement Spot ( =new BADI) can of cource be used for making custom rule for my requirement.
    I'll make this thread answered. Hope you joined my self-dialog.
    Keywords: DEFINE EDIT SYSTEM CUSTOMER ROLES SMSY_ROLES
    br: Kimmo

  • How do I know  what transactions executed by specific user for last month

    All
    We have a request to find out  what transactions are executed by secific user
    for last couple of months.
    Is there any report in SAP would tell me ?
    Please advise.
    From
    PT.

    Hello PT,
    If you use the search for the term "How do I know what transactions executed by specific user for last month" then I guarantee you some good hits in the result, and further more detailed search terms to use...
    Cheers,
    Julius
    (this time in response to the correct thread...)

  • Problem in SHD0 about creation of Transaction Variant for VA02

    Hi All,
    My goal is to create a Transaction Variant for VA02 Variant that doesn't display the "Object Status" button under the page "Status" in the Header of Sales Orders.
    To do so, I created a Transaction Variant in SHD0 (named ZTEST_VA02), the creation process creates the Screen Variants too, and i named them ZTEST_VA02_<dynpro_number>.
    The Dynpro where I can found the button to hide is the SAPMV45A / 4305, so the Screen Variant Name is ZTEST_VA02_4305.
    My problem is that If I test the single Screen Variant (ZTEST_VA02_4305) using the button in SHD0, I can see the whole transaction with my modify (the "Object Status" button is hidden), but testing the entire Transaction Variant ZTEST_VA02 I cannot see the modify and the Button is pretty visible.
    I even tried to create a Transaction with Variant, in SE93, that launches the transaction VA02 with the variant ZTEST_VA02, and I tried to assign the Transaction Variant I created as a Standard Variant, in both cases the problem is that the modify doesn't appear to be applied.
    For me this is a real mistery because If the Screen Variant is right (It works) I would expect to see that even the Transaction Variant is correct.
    Does Anyone have (or have ever had) this problem?
    Thank You very much for your attention.
    Regards,
    Claudio
    PS: I forgot to mention that I'm working on SAP ECC 6.0
    Edited by: Claudio Distrutti on Apr 4, 2008 11:47 AM

    I too facing the similar problem when assigning the screen variant to transaction variant.
    screen number where the 'Obj.Status' button is ' 4456
    if executing the screen variant alone , it works  perfectly,
    once i assing to the transaction variant and test,  the 'Obj.Status' button is visible.
    does anyone got the solution?
    Edited by: Thomas Paul jr on Oct 21, 2010 1:59 PM

  • Transaction executing in queue XBTOE_0000

    Hi,
    we have a scenario where PI picks up a file and sends it to some external partner.
    Afterthe file is picked up the message gets a status 'recorded for outbound processing' in SXMB_MONI. In SMQ2 it reads 'Transaction executing'. In the Runtime werkbench the message is set to 'DLVD'.
    All queues are registered in SMQR.
    We just made an upgrade from 7.10 to 7.11 - in 7.10 it worked - and still works.
    Thanks for helping.
    Kris Claes
    K.U.Leuven

    Hi Pavan,
       Did u try to execute it by going in Edit -> Execute LUW.
    If not, try that and also check by digging into the queue entry whether it gives any more details.
    Also, check whtehr the user which is uesed to login in R/3 is in an unlocked state or note.
    Regards,
    Akshay

  • Need all transaction codes for idocs

    need all transaction codes for idocs

    Hi,
    ALE IDOC
    Sending System(Outbound ALE Process)
    Tcode SALE ? for
    a) Define Logical System
    b) Assign Client to Logical System
    Tcode SM59-RFC Destination
    Tcode BD64 ? Create Model View
    Tcode BD82 ? Generate partner Profiles & Create Ports
    Tcode BD64 ? Distribute the Model view
    Message Type MATMAS
    Tcode BD10 ? Send Material Data
    Tcode WE05 ? Idoc List for watching any Errors
    Receiving System(Inbound ALE )
    Tcode SALE ? for
    a) Define Logical System
    b) Assign Client to Logical System
    Tcode SM59-RFC Destination
    Tcode BD64 ? Check for Model view whether it has distributed or not
    Tcode BD82 -- Generate partner Profiles & Create Ports
    Tcode BD11 Getting Material Data
    Tcode WE05 ? Idoc List for inbound status codes
    ALE IDOC Steps
    Sending System(Outbound ALE Process)
    Tcode SALE ?3 for
    a) Define Logical System
    b) Assign Client to Logical System
    Tcode SM59-RFC Destination
    Tcode BD64 !V Create Model View
    Tcode BD82 !V Generate partner Profiles & Create Ports
    Tcode BD64 !V Distribute the Model view
    This is Receiving system Settings
    Receiving System(Inbound ALE )
    Tcode SALE ?3 for
    a) Define Logical System
    b) Assign Client to Logical System
    Tcode SM59-RFC Destination
    Tcode BD64 !V Check for Model view whether it has distributed or not
    Tcode BD82 -- Generate partner Profiles & Create Ports
    Tcode BD11 Getting Material Data
    Tcode WE05 !V Idoc List for inbound status codes
    Message Type MATMAS
    Tcode BD10 !V Send Material Data
    Tcode WE05 !V Idoc List for watching any Errors
    1)a Goto Tcode SALE
    Click on Sending & Receiving Systems-->Select Logical Systems
    Here Define Logical Systems---> Click on Execute Button
    go for new entries
    1) System Name : ERP000
    Description : Sending System
    2) System Name : ERP800
    Description : Receiving System
    press Enter & Save
    it will ask Request
    if you want new request create new Request orpress continue for transfering the objects
    B) goto Tcode SALE
    Select Assign Client to Logical Systems-->Execute
    000--> Double click on this
    Give the following Information
    Client : ERP 000
    City :
    Logical System
    Currency
    Client role
    Save this Data
    Step 2) For RFC Creation
    Goto Tcode SM59-->Select R/3 Connects
    Click on Create Button
    RFC Destination Name should be same as partner's logical system name and case sensitive to create the ports automatically while generating the partner profiles
    give the information for required fields
    RFC Destination : ERP800
    Connection type: 3
    Description
    Target Host : ERP000
    System No:000
    lan : EN
    Client : 800
    User : Login User Name
    Password:
    save this & Test it & RemortLogin
    3)
    Goto Tcode BD64 -- click on Change mode button
    click on create moduleview
    short text : xxxxxxxxxxxxxx
    Technical Neme : MODEL_ALV
    save this & Press ok
    select your just created modelview Name :'MODEL_ALV'.
    goto add message type
    Model Name : MODEL_ALV
    sender : ERP000
    Receiver : ERP800
    Message type :MATMAS
    save & Press Enter
    4) Goto Tcode BD82
    Give Model View : MODEL_ALV
    Partner system : ERP800
    execute this by press F8 Button
    it will gives you sending system port No :A000000015(Like)
    5) Goto Tcode BD64
    seelct the modelview
    goto >edit>modelview-->distribute
    press ok & Press enter
    6)goto Tcode : BD10 for Material sending
    Material : mat_001
    Message Type : MATMAS
    Logical System : ERP800
    and Execute
    7)goto Tcode : BD11 for Material Receiving
    Material : mat_001
    Message Type : MATMAS
    and Execute --> 1 request idoc created for message type Matmas
    press enter
    Here Master Idoc set for Messge type MATMAS-->press Enter
    1 Communication Idoc generated for Message Type
    this is your IDOC
    Change Pointers
    I know how to change the description of a material using ALE Change Pointers.
    I will give the following few steps
    1) Tcode BD61---> check the change pointers activated check box
    save and goback.
    2) Tcode BD50---> check the MATMAS check box save and comeback.
    3) Tcode BD51---> goto IDOC_INPUT_MATMAS01 select the checkbox save and comeback.
    4) Tcode BD52---> give message type : matmas press ok button.
    select all what ever you want and delete remaining fields.
    save & come back.
    5) 5) go to Tcode MM02 select one material and try to change the description and save it
    it will effects the target systems material desciption will also changes
    6) goto Tcode SE38 give program Name is : RBDMIDOC and Execute
    give Message type : MATMAS and Executte
    ALE/IDOC Status Codes/Messages
    01 Error --> Idoc Added
    30 Error --> Idoc ready for dispatch(ALE Service)
    then goto SE38 --> Execute the Program RBDMIDOC
    29 Error --> ALE Service Layer
    then goto SE38 --> Execute the Program RSEOUT00
    03 Error --> Data Passed to Port ok
    then goto SE38 --> Execute the Program RBDMOIND
    12 Error --> Dispatch ok
    Inbound Status Codes
    50 Error --> It will go for ALE Service Layer
    56 Error --> Idoc with Errors added
    51 Error --> Application Document not posted
    65 Error --> Error in ALE Service Layer
    for 51 or 56 Errors do the following steps
    goto WE19 > give the IDOC Number and Execute>
    Press on Inbound function Module
    for 65 Error --> goto SE38 --> Execute the Program RBDAPP01 then your getting 51 Error
    BAPI tcode --- BAPI.
    Also:
    IDOC:
    IDOC ADMINISTRATION
    WE09 / WE02 IDoc lists according to content. View IDocs via specific IDoc number or business application detail contained within the contents of a segment.
    WE05 View IDocs
    WE60 IDoc type documentation tool
    WE20 Partner profile configuration. Add partner detail together with inbound and outbound relationships. We also incorporate message control on the outbound IDocs. Utilize the organizational units to trap functional errors for further processing.
    BD87 Reprocess IDocs in error or waiting for action. (Both inbound and outbound in 4.6. Use BD88 in prior versions)
    1.4 IDOC DEVELOPMENT
    BD55 Conversion rule user exit. Link conversion rule user exit to the different system \ partner combinations.
    WE19 EDI test tool. Use to test inbound Function module changes.
    WE31 Segment create
    WE30 Create IDoc extension type
    WE82 Link Release detail to Extension IDoc Type
    WE57 Assign function module to logical message and IDoc type
    BAPI: BAPI, SWO1.
    Transaction codes Related for IDOC Configurations
    WEDI: Area Menu for IDOC’s
    WE02: Display IDoc
    WE19: ALE Test tool
    WE30: Development of IDOC Type
    WE31: Development of IDOC Segment
    WE41: Process Codes, Outbound
    WE42: Process Codes, Inbound
    WE47: Status Maintenance
    WE81: Logical Message Types
    WE57: Assignment Messages for Appl. Objs
    SM59: RFC Destinations (Display/Maintain)
    SALE: Display ALE Customizing
    BD54: Maintaining Logical Systems
    BD67: Maintain methods (inbound)
    BD64: Maintenance of Distribution Model
    BD87: Status Monitor for ALE Messages
    Reward points if found helpful...
    Cheers,
    Chandra Sekhar.

  • Dbms_scheduler job neither succeeds nor errors its just keep running for ever

    Hi All,
    I am trying to run a shell script from plsql using the dbms_scheduler, job is getting created and it keeps running for ever without success or error.
    Can some please help me where I am doing the mistake.
    Thanks
    DB Version:
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    Plsql Script:
    BEGIN
       DBMS_SCHEDULER.create_job (
          job_name              => 'SFTP_PAYMENTECH_BATCHID1',
          job_type              => 'EXECUTABLE',
          job_action            => '/app07/ebdev/ebdevappl/xxtpc/bin/test.sh',
          number_of_arguments   => 1,
          enabled               => FALSE,
          auto_drop             => TRUE,
          comments              => 'SFTP Batch File to Paymentech');
       DBMS_OUTPUT.put_line (
          'Job Created Successfully:' || 'SFTP PAYMENTECH BATCHID');
       fnd_file.put_line (
          fnd_file.output,
          'Job Created Successfully:' || 'SFTP PAYMENTECH BATCHID');
       COMMIT;
       DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE (
          job_name            => 'SFTP_PAYMENTECH_BATCHID1',
          argument_position   => 1,
          argument_value      => '66667'                        /*v_printer_name*/
       DBMS_SCHEDULER.enable (name => 'SFTP_PAYMENTECH_BATCHID1');
    EXCEPTION
       WHEN OTHERS
       THEN
          fnd_file.put_line (fnd_file.output,
                             'Error while creating the Job:' || SQLERRM);
          DBMS_OUTPUT.put_line ('Error while creating the Job:' || SQLERRM);
    END;
    Shell Script which I am calling:
    #!/usr/bin/ksh
    FILENAME=$1
    PMTHOST=198.xx.xx.xx
    PMTUSER=xxxxx
    PMTPW=xxxxx
    a='apps'
    b='xxxxxx'
    c='EBDEV'
    INST=`echo $TWO_TASK | sed 's/_BALANCE//'`
    echo INSTANCE: $INST
    echo
    File_Path=$XXTPC_TOP/iby/out
    echo File Name: $FILENAME
    echo $PMTHOST
    echo $PMTUSER
    echo
    echo Date: `date`
    echo
    echo File System User: `whoami`
    echo
    echo Instance: $TWO_TASK
    echo
    echo File_Path: $File_Path
    echo
    echo PMT SFTP
    # Fetch file using MBATCHID as File Name
    cd $File_Path
    echo
    echo -----------------------------------------------
    echo
    echo Current File          :$FILENAME
    l_date_time=`date +%Y%m%d%H%M%S`
    echo SFTP Remittance File
    # sftp $PMTUSER@$PMTHOST << EOF
    lftp -u $PMTUSER,$PMTPW sftp://$PMTHOST << EOF
    lcd $File_Path
    cd test/945299
    put $FILENAME
    exit
    EOF
    #`sqlplus -s apps/tpcdev2013@EBDEV @try.sql $FILENAME`

    Have you tried running the script manually to confirm it isnt just hanging on input for the lftp ?
    You could add a -o <file> to the lftp command line which would output debug info into <file> so you could see.
    Creation of the job looks fine so as GregV said, what output do you have in ALL_SCHEDULER_RUNNING_JOBS and any ADDITIONAL_INFO in the ALL_SCHEDULER_JOB_RUN_DETAILS or in $ORACLE_HOME/scheduler/log that might indicate what the problem is ?
    If this answer was helpful, please mark as helpful answer. 

  • Transaction code for SAP query reports

    Hi All,
    I am trying to create transaction code for sap query report but couldn't go further.
    1) Created User group in SQ03
    2) Created infoset in SQ03 and assigned that to the user group
    3) Created query in SQ01 using the infoset.
    I executed the report in SQ01 and it is working fine.
    Now I try to create a transaction code in SE93 using the steps mentioned in the following link:
    Assign transaction code to SAP Query (created via SQ01)
    But when try to execute the report using the transaction code, it is giving error message 'User group xxxxxx is not yet created'
    Could any one advice me if I miss something? Or please help me to create this transaction code and transport to production?
    Thanks in advance

    HI,
    based on the thread you've already mentioned:
    In SE93, Create a Paramter Transaction
    -> Transaction = Start_report
    -> In default values, give the below details:
    D_SREPOVARI-REPORTTYPE = AQ
    D_SREPOVARI-EXTDREPORT = Name of the Query
    D_SREPOVARI-REPORT = User Group
    So check if the user group is typed correct in SE93 and check also if the user group exits in the system where you are trying to run the transaction.
    best regards, Christian

  • Is there any transaction code for uploding logo in ALV reports.

    is there any transaction code for uploding logo in ALV reports.

    hi,
    call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = t_header.
                i_logo             = 'Z_LOGO'.
    endform.
    Upload Logo for REUSE_ALV_COMMENTARY_WRITE
    For those who wish to upload and use a picture in your ALV abap reports.
    Steps for uploading Logo :-:
    1. Goto the transaction OAER
    2. Enter the class name as 'PICTURES'
    3. Enter the class type as 'OT'
    4. Enter the object key as the name of the logo you wish to give
    5. Execute
    6. Then in the new screen select Standard doc. types in bottom window
    Click on the Screen icon
    Now, it will ask for the file path where you have to upload the logo
    7. Now you can use this logo in REUSE_ALV_COMMENTARY_WRITE
    or
    Import Logo and Background Picture for Reporting
    In this step, you can import a customer-specific logo and a background picture into the R/3 System. These will be displayed in the header area of reports in HR Funds and Position Management.
    From the SPRO:
    HR Funds and Position Management --> Dialog Control --> Customize Reporting Interface --> Import Logo and Background Picture for Reporting.
    Activities
    1. Enter the Name of your logo/background picture as an object key in the initial screen.
    2. Make sure that the class name is PICTURES, and the class type is OT.
    3. Choose Execute.
    4. Double-click the document type Picture on the Create tab page. A dialog box will appear in which you can enter the path in which the logo/background picture can be found.
    5. Enter the path and choose Open. The logo will be uploaded into the current R/3 System. If the logo/background picture is to be transported into other systems as well, choose Transport.
    6. Return to the initial screen and repeat the procedure after having entered the Name of your background picture as an object key.
    Please note that the logo/background picture can only be displayed in ALV-based reports with an HTML header. Manually programmed reports such as business distribution plans are not based on the ALV.
    If you have selected several initial objects, ALV-based reports in HR Funds and Position Management will automatically use a hiearchical-sequential display. A logo is not displayed here either. Note also that the logo cannot be printed (see print preview in program).
    Make sure that the logo does not exceed a height of 100 pixels because it would mean that the header of the report will be scrollable.

  • [Solved] if(Transaction specified for a non-transactional database) then

    I am getting started with BDBXML 2.4.14 transactions and XQuery update functionality and I am having some difficulty with 'node insert ...' and transactions failing with 'Transaction specified for a non-transactional database'
    Thanks for helping out.
    Setup:
    I have coded up a singleton manager for the XmlManger with a ThreadLocal holding the transaction and a query method to execute XQueries. The setup goes like this:
    environmentConfig = new EnvironmentConfig();
    environmentConfig.setRunRecovery(true);               environmentConfig.setTransactional(true);               environmentConfig.setAllowCreate(true);               environmentConfig.setRunRecovery(true);               environmentConfig.setInitializeCache(true);                environmentConfig.setTxnMaxActive(0);               environmentConfig.setInitializeLocking(true);               environmentConfig.setInitializeLogging(true);               environmentConfig.setErrorStream(System.err);
    environmentConfig.setLockDetectMode(LockDetectMode.MINWRITE);               environmentConfig.setJoinEnvironment(true);               environmentConfig.setThreaded(true);
    xmlManagerConfig = new XmlManagerConfig();               xmlManagerConfig.setAdoptEnvironment(true);               xmlManagerConfig.setAllowAutoOpen(true);               xmlManagerConfig.setAllowExternalAccess(true);
    xmlContainerConfig = new XmlContainerConfig();               xmlContainerConfig.setAllowValidation(false);               xmlContainerConfig.setIndexNodes(true);               xmlContainerConfig.setNodeContainer(true);
    // initialize
    instance.xmlManager = new XmlManager(instance.getEnvironment(),                    instance.getXmlManagerConfig());
    instance.xmlContainer = instance.xmlManager.openContainer(                              containerName, instance.getXmlContainerConfig());
    private ThreadLocal<XmlTransaction> transaction = new ThreadLocal<XmlTransaction>();
    public XmlTransaction getTransaction() throws Exception {
              if (transaction.get() == null) {
                   XmlTransaction t = xmlManager.createTransaction();
                   log.info("Transaction created, id: " + t.getTransaction().getId());
                   transaction.set(t);
              } else if (log.isDebugEnabled()) {
                   log.debug("Reusing transaction, id: "
                             + transaction.get().getTransaction().getId());
              return transaction.get();
         private XmlQueryContext createQueryContext(String docName) throws Exception {
              XmlQueryContext context = xmlManager.createQueryContext(
                        XmlQueryContext.LiveValues, XmlQueryContext.Lazy);
              List<NamespacePrefix> namespacePrefixs = documentPrefixes.get(docName);
              // declare ddi namespaces
              for (NamespacePrefix namespacePrefix : namespacePrefixs) {
                   context.setNamespace(namespacePrefix.getPrefix(), namespacePrefix
                             .getNamespace());
              return context;
         public XmlResults xQuery(String query) throws Exception {
              XmlQueryExpression xmlQueryExpression = null;
              XmlQueryContext xmlQueryContext = getQueryContext(docName);
              try {
                   xmlQueryExpression = xmlManager.prepare(getTransaction(), query,
                             xmlQueryContext);
                   log.info(query.toString());
              } catch (Exception e) {
                   if (xmlQueryContext != null) {
                        xmlQueryContext.delete();
                   throw new DDIFtpException("Error prepare query: " + query, e);
              XmlResults rs = null;
              try {
                   rs = xmlQueryExpression.execute(getTransaction(), xmlQueryContext);
              // catch deadlock and implement retry
              catch (Exception e) {
                   throw new DDIFtpException("Error on query execute of: " + query, e);
              } finally {
                   if (xmlQueryContext != null) {
                        xmlQueryContext.delete();
                   xmlQueryExpression.delete();
              return rs;
    <?xml version="1.0" encoding="UTF-8"?>
    <Test version="0.1">
    <Project id="test-project" agency="dda">
    <File id="large-doc.xml" type="ddi"/>
    <File id="complex-doc.xml" type="ddi"/>
    </Project>
    <Project id="2nd-project" agency="test.org"/>
    </Test>
    Problem:
    All the queries are run through the xQuery method and I do delete the XmlResults afterwards. How do I get around the 'Transaction specified for a non-transactional database' what is the transactions doing? How do I get state information out of a transaction? What am I doing wrong here?
    1 First I insert a node:
    Transaction created, id: -2147483647
    Adding document: large-doc.xml to xml container
    Reusing transaction, id: -2147483647
    Working doc: ddieditor.xml
    Root element: Test
    Reusing transaction, id: -2147483647
    insert nodes <Project id="JUnitTest" agency="test.org"></Project> into doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test
    Reusing transaction, id: -2147483647
    2 Then do a query:
    Reusing transaction, id: -2147483647
    doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project/@id
    Reusing transaction, id: -2147483647
    3 The same query again:
    Reusing transaction, id: -2147483647
    doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project/@id
    Reusing transaction, id: -2147483647
    4 Delete a node:
    Reusing transaction, id: -2147483647
    delete node for $x in doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project where $x/@id = '2nd-project' return $x
    Reusing transaction, id: -2147483647
    5 Then an error on query:
    Reusing transaction, id: -2147483647
    doc("dbxml:/ddieditor.dbxml/ddieditor.xml")/Test/Project/@id
    Reusing transaction, id: -2147483647
    Transaction specified for a non-transactional database
    com.sleepycat.dbxml.XmlException: Error: Invalid argument, errcode = DATABASE_ERROR
         at com.sleepycat.dbxml.dbxml_javaJNI.XmlResults_hasNext(Native Method)
         at com.sleepycat.dbxml.XmlResults.hasNext(XmlResults.java:136)
    Message was edited by:
    jannikj

    Ok got it solved by increasing the locks lockers and mutex's I allso increased the the log buffer size:
    environmentConfig = new EnvironmentConfig();
                   // general environment
                   environmentConfig.setAllowCreate(true);
                   environmentConfig.setRunRecovery(true); // light recovery on startup
                   //environmentConfig.setRunFatalRecovery(true); // heavy recovery on startup
                   environmentConfig.setJoinEnvironment(true); // reuse of environment: ok
                   environmentConfig.setThreaded(true);
                   // log subsystem
                   environmentConfig.setInitializeLogging(true);
                   environmentConfig.setLogAutoRemove(true);
                   environmentConfig.setLogBufferSize(128 * 1024); // default 32KB
                   environmentConfig.setInitializeCache(true); // shared memory region
                   environmentConfig.setCacheSize(2500 * 1024 * 1024); // 250MB cache
                   // transaction
                   environmentConfig.setTransactional(true);
                   environmentConfig.setTxnMaxActive(0); // live forever, no timeout               
                   // locking subsystem
                   environmentConfig.setInitializeLocking(true);
    environmentConfig.setMutexIncrement(22);
    environmentConfig.setMaxMutexes(200000);
    environmentConfig.setMaxLockers(200000);
    environmentConfig.setMaxLockObjects(200000); // default 1000
    environmentConfig.setMaxLocks(200000);
    // deadlock detection
                   environmentConfig.setLockDetectMode(LockDetectMode.MINWRITE);
    In the docs by Oracle it is limited information given regarding the impact of these settings and their options. Can you guys point in a direction where I can find some written answers or it hands on?

  • Transaction Variant for a standard report without transaction code

    Hi,
    I want to create a transaction variant for a executable report. The report has some subscreens 100, 110 etc. I want to hide the subscreen through transaction variant. So I have created a transaction code (Y*) for it and then tried creating transaction variant using SHD0 transaction.  But the fields are not listed to choose invisible or other options. Please advice

    The fields are listed when you leave each recorded screen. You have the flag "do not display the screen". It's strange you don't have anything, are you sure you started the recording? (you enter the transaction code, the transaction variant, you click the Create button and the screens are displayed and recorded)
    Which transaction is it?
    A little remark (about your last posts): forum rules ask people to give points, it's a way to say thank you. Otherwise, people won't help you anymore. It's not a black and white logic : don't give points only when your problem is solved. Give 2 or 5 points to thank people (or 0 if it's out of context). Thanks.

  • How to define transaction semantics for JMS Queues

    Hi,
    My scenario in Oracle Fusion Middleware 11gR3, SOA Suite, IDE: JDeveloper 11g is as follows:
    First). receive a message from QueueA, Second). Using the message, call a serviceABC and send the same message into QueueB.
    I created a syn-BPEL, configured two JMS Adapters(for accessing Queue A & B) and one webservice binding for calling serviceABC(Proxy service). Note: I created the two queues and a connection factory under JMS System Module. As two different external systems have to access QueueA and QueueB.
    Now, when I execute the BPEL and ServiceABC gets faulted, the message is gettings consumed from QueueA and the same message is getting produced in QueueB.
    My goal is to define a transaction semantics for my composite(syn-BPEL), such that, when ServiceABC or producing the message in QueueB fails. I retain the message in QueueA(basically, rolling back the message).
    Options tried so far: 1). Created a scope for the three operations and added a compensationhandler to it and .2). XA Connection Factory is Enabled. Result: no luck:( still message from QueueA is getting consumed where as per my goal it should get rolled-back.
    Please suggest your approach, I'll try out and post the outcome back.

    Whats your architecture? Are you running your app on an application server? If so, are you in a servlet or EJB? You should be able to get the application server to manage your transactions for you in that case e.g. wrap all the JMS calls in an stateless session bean and give it Required in its transaction attribute of deployment descriptor.
    If you're not on an application server, you need to get a transaction manager, either by putting your code in an app server ( with JBoss you can use its transaction manager without necessarily having to use EJBs or Servlets, but thats not tested as thoroughly as the container managed transactions, and you will have to write some of the transaction code yourself ) or using a stand alone one.

  • Transaction Variant for T. Code - FBL1N

    Hi,
    I want to create a Transaction Variant for T. Code - FBL1N.
    Actually, My requirement is that I want to give a Dynamic Selection "Reconciliation acct-XXXXXX"... After Create  the variant for this, i want to disable the Dynamic Selections Icon. I want both things at a time..
    Please tell...
    Regards....

    Hi,
    Even though question is already marked as answered, I think that Pince Kummar requirement was not fulfilled.
    Those are the steps that you should execute:
    1. Create a Selection Variant:
    In FBL1N transaction, enter your required field values, and click on the save icon. Maintain variant attributes as you need. Assign to your selection variant a name beginning with CUS&. With that prefix you specify that is a customer system variant.
    2. Assign the created selection variant as default for tcode FBL1N.
    Go to SE93 and change FBL1N, on "Start with variant" field select your created CUS& variant and save.
    At this time you can notice that FBL1N transaction always begin with your selection variant.
    3. If you also want to disable Dynamic selections function, you should create a Standard transaction variant.
    Go to SHD0, enter the transaction code name (FBL1N). In the Standard Variants tab enter a name and choose create function. Automatically FBL1N selection image will be showed, click back button to return. In the screen that now is showed, choose "Menu Functions" and enter Program "RSSYSTDB" and gui status "%_00" and click Menu Functions, then in the tree that come out, find and select Dyamic Selections function (%_00->Edit->DYNS), next click disable button and then continue button.
    Now you return to Transaction variants maintenance screen. Make sure that in deactive functions list, for Dynamic selections function is only active "For Transaction" check box. Now save and activate your transaction variant.

  • ORA-02049: timeout: distributed transaction waiting for lock

    Hi,
    My name is Guneet and I'm working on an application running on BEA Weblogic Server 9.2 running on a Red Hat Linux box using Oracle 10g as the database. My problem is that recently our code started getting the following exception while updating a database table.
    java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-02049: timeout: distributed transaction waiting for lock
    Application Details
    * Using Stateless Session EJB
    * Only one Business method in this EJB with transaction attribute set to "required"
    * This method executes two select queries & one update query
    * We are using JDBC to access the database.
    * We have configured a Data Source & are using it to get a database connection.
    * Weblogic's Oracle Driver is being used.
    More details
    * The application has been running well since a month.
    * Two days ago,the update query failed with the above error.
    * At that time, a single client was accessing the system.
    * Once this problem occurs, it starts appearing frequently.
    * Eventually a request to get a connection from the Data Source times out & the exception copied at the end is thrown
    * At this stage the application gets stuck and all requests trying to get a connection end up with this exception.
    * Fortunately, Restarting the Weblogic Server gets us out of this problem and transactions resume normally.
    Now my questions are
    # Why is this error happening & what does it mean?
    # It looks like the second exception (unable to get a connection from ds) is an after effect of the first problem (ORA-02049) once it appears for a couple of times. Can somebody validate this?
    # Though I don't understand JTA well but I don't think this application needs distributed transactions so, I'm thinking of modifying the driver type to non-XA oracle driver. Any advise/pointers/comments on this front is welcome !!!!!!!!
    Thanks
    Guneet Sahai
    Exception Trace
    Dec 27, 2006 4:47:50 PM | com.gisil.themis.db | SEVERE | Unable to load merchant DEL = 911168900164. Reason - java.sql.SQLException: Unexpected exception while enlisting XAConnection java.sql.SQLException: XA error: XAResource.XAER_RMERR start() failed on resource 'themis-ds': XAER_RMERR : A resource manager error has occured in the transaction branch
    javax.transaction.xa.XAException: Unexpected error during start for XAResource 'themis-ds': Transaction timed out after 29 seconds
    BEA1-252DE51AC930078CA638
    at weblogic.jdbc.wrapper.XA.createException(XA.java:103)
    at weblogic.jdbc.jta.DataSource.start(DataSource.java:753)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1182)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1115)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:274)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:497)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:429)
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1408)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1332)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:440)
    at weblogic.jdbc.jta.DataSource.connect(DataSource.java:396)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
    at com.gisil.themis.db.impl1.DbManagerImpl.isPinValid(DbManagerImpl.java:872)
    at com.gisil.themis.ejb.ThemisBean.isPinValid(ThemisBean.java:185)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl.isPinValid(Themis_aqqc4k_EOImpl.java:207)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
    at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
    at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
    at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1413)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1332)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:440)
    at weblogic.jdbc.jta.DataSource.connect(DataSource.java:396)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
    at com.gisil.themis.db.impl1.DbManagerImpl.isPinValid(DbManagerImpl.java:872)
    at com.gisil.themis.ejb.ThemisBean.isPinValid(ThemisBean.java:185)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl.isPinValid(Themis_aqqc4k_EOImpl.java:207)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
    at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
    at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
    at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

    guneet sahai wrote:
    Hi,
    My name is Guneet and I'm working on an application running on BEA Weblogic Server 9.2 running on a Red Hat Linux box using Oracle 10g as the database. My problem is that recently our code started getting the following exception while updating a database table.
    java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-02049: timeout: distributed transaction waiting for lock
    Application Details
    * Using Stateless Session EJB
    * Only one Business method in this EJB with transaction attribute set to "required"
    * This method executes two select queries & one update query
    * We are using JDBC to access the database.
    * We have configured a Data Source & are using it to get a database connection.
    * Weblogic's Oracle Driver is being used.
    More details
    * The application has been running well since a month.
    * Two days ago,the update query failed with the above error.
    * At that time, a single client was accessing the system.
    * Once this problem occurs, it starts appearing frequently.
    * Eventually a request to get a connection from the Data Source times out & the exception copied at the end is thrown
    * At this stage the application gets stuck and all requests trying to get a connection end up with this exception.
    * Fortunately, Restarting the Weblogic Server gets us out of this problem and transactions resume normally.
    Now my questions are
    # Why is this error happening & what does it mean?
    # It looks like the second exception (unable to get a connection from ds) is an after effect of the first problem (ORA-02049) once it appears for a couple of times. Can somebody validate this?
    # Though I don't understand JTA well but I don't think this application needs distributed transactions so, I'm thinking of modifying the driver type to non-XA oracle driver. Any advise/pointers/comments on this front is welcome !!!!!!!!
    Thanks
    Guneet SahaiHi Guneet. If you want to debug the JTA issue, I suggest opening an official
    support case. They will lead you through producing the JTA debug information.
    However, I believe you are correct that the transaction you describe is
    completely doable with a simple local transaction, so if you were to alter
    your pool to use the non-XA driver, it would probably be faster, simpler,
    and just work.
    Let me know...
    Joe
    >
    Exception Trace
    Dec 27, 2006 4:47:50 PM | com.gisil.themis.db | SEVERE | Unable to load merchant DEL = 911168900164. Reason - java.sql.SQLException: Unexpected exception while enlisting XAConnection java.sql.SQLException: XA error: XAResource.XAER_RMERR start() failed on resource 'themis-ds': XAER_RMERR : A resource manager error has occured in the transaction branch
    javax.transaction.xa.XAException: Unexpected error during start for XAResource 'themis-ds': Transaction timed out after 29 seconds
    BEA1-252DE51AC930078CA638
    at weblogic.jdbc.wrapper.XA.createException(XA.java:103)
    at weblogic.jdbc.jta.DataSource.start(DataSource.java:753)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1182)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1115)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:274)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:497)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:429)
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1408)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1332)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:440)
    at weblogic.jdbc.jta.DataSource.connect(DataSource.java:396)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
    at com.gisil.themis.db.impl1.DbManagerImpl.isPinValid(DbManagerImpl.java:872)
    at com.gisil.themis.ejb.ThemisBean.isPinValid(ThemisBean.java:185)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl.isPinValid(Themis_aqqc4k_EOImpl.java:207)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
    at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
    at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
    at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1413)
    at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1332)
    at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:440)
    at weblogic.jdbc.jta.DataSource.connect(DataSource.java:396)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
    at com.gisil.themis.db.impl1.DbManagerImpl.isPinValid(DbManagerImpl.java:872)
    at com.gisil.themis.ejb.ThemisBean.isPinValid(ThemisBean.java:185)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl.isPinValid(Themis_aqqc4k_EOImpl.java:207)
    at com.gisil.themis.ejb.Themis_aqqc4k_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
    at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
    at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
    at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

Maybe you are looking for