JTA File and SQL Transactions

I am trying to find some examples of how I might use JTA to solve a programming problem. I need the ability to wrap a transaction around two distinct events: a File write and a SQL transaction. I have a file that needs to be copied to a particular place and a corresponding SQL update statement to be executed. If either fails, I need to be able to rollback both events.
I have tried to use the free Astrel IO Atomic, but it appears to be buggy. The Apache Transaction package almost works, but it only support File IO on the same drive. I was hoping that I could find some examples on how I might implement my own transaction.
Thanks

You need to force sqlplus to exit with an non-zero return code. All processes upon termination, return an exit code to the operating system. This allows it to inform other processes of its exit state - e.g. successful, failed, partially successful with warnings, etc. On most operating systems the exit code is a byte int value, ranging from 0 to 255.
In Windows console scripts, you can user the ERRORLEVEL variable to view the last process's exit code.
So.. you get sqlplus to exit with a 1 (usually means fail) and not a 0 (usually means successful) and then test the exit code using ERRORLEVEL.
Have a look at SQL*Plus command "+WHENEVER SQLERROR"+ to force an exit with an error exit code.
In your Windows console, use the HELP command for how the IF command and ERRORLEVEL variable works.
Sorry - no Windows here so I cannot be more specific with an example.. (in Linux the approach is exactly the same, except the variable +$?+ is used in scripts for the exit code)

Similar Messages

  • Windows Page file and SQL AWE Correct Configuration

    Hi everyone,
    I have SQL ENT. 2005 and Windows ENt w2k3 I Have 9 Gig of Physical Mem
    2 Dual Processor 2x72 GIG Raid 1  SCSI 3x72 Raid 5, I got slow performance on my SAP B1 2005 my current database is 45gig
    current config and stats
    Windows  Virtual Mem  config is  min 1024 max 2048
    SQL AWE min 5120 max 6144
    boot.ini config
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /PAE
    can anyone help me if this is correct, need your advice whats the best practice between AWE and VM Pagefile.sys
    clifford

    2046MB of pagefile is really not enough. increase to 20GB is possible.

  • Find object Names in a file and print all those objects Names

    Hi All,
    I am new to this forum.
    I want to know how to read only objects names in txt file. In the text file i have sql queries, package names, Function Name. I need to read all the objects and display out put. The file contains around 20000 Lines.
    Please suggest me.
    Thanks & Regards
    Suresh.

    Gurram wrote:
    want to read .rex File. The file contains combination of SQL code with table Names, Packages,Functions,There are three basic ways to read an external file.
    You can use UTL_FILE and use standard/basic file I/O calls like fread() and fwrite() - common amongst most (if not all) programming languages.
    You can define an external table for the file, and SQL*Load the contents of the file dynamically via a SQL SELECT statement.
    You can load the file into a CLOB using DBMS_LOB and then process it - quite useful if the text file is XML as the XMLTYPE supports parsing a a CLOB containing XML.
    I want to pick Each object name put in a separate file line by line.That in turn will need to use UTL_FILE to create an external file.
    Keep in mind though that your in a database environment with PL/SQL. The very best place for data is inside the database in SQL tables. Not outside as external files. Thus you need to ask yourself whether dealing this way with external files is the best solution, and a robust and scalable one.
    Granted, many times from the database side we need to deal with external files. The optimal method usually is to load that file's data into a database table as structured data - data that can be accessed via SQL and sorted, filtered, aggregated and analysed.
    To provide a "file" as output - this should ideally be done directly from structured data (SQL tables). And can be done using HTTP (via a web enabled PL/SQL procedure that supplies the file content as a http Mime stream), using FTP (via <i>UTL_TCP</i>) or as a CLOB via a PL/SQL call interface. Using UTL_FILE is not necessarily the only option.

  • SSMS 2012: Import XML File to SQL Table - 'value' is not a recognized built-in function name!!??

    Hi all,
    I have the following xml file (books1.xml):
    <bookstore>
    <book>
    <BookID>1</BookID>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
    </book>
    <book>
    <BookID>2<BookID>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>
    <book>
    <BookID>3<BookID>
    <title>XQuery Kick Start</title>
    <author>James McGovern</author>
    <year>2003</year>
    <price>49.99</price>
    </book>
    <book>
    <BookID>4<BookID>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
    </book>
    </bookstore>
    In my Microsoft SQL Server 2012 Management Studio, I executed the following SQL Query code:
    --XQuery w3schools example using books1.xml in C:\Temp folder
    ---SQL Query W3books Title
    ---9 March 2015
    USE XML_XQUERY
    GO
    CREATE TABLE W3Books(
    BookID INt Primary Key,
    Title VARCHAR(30));
    INSERT INTO W3Books (BookID, Title)
    SELECT x.book.query('BookID'), value('.', 'INT'),
    x.book.query('title'), value('.', 'VARCHAR(30)')
    FROM (
    SELECT CAST(x AS XML)
    FROM OPENROWSET(
    BULK 'C:\Temp\books1.xml',
    SINGLE_BLOB) AS T(x)
    ) AS T(x)
    CROSS APPLY x.nodes('W3Books/book') AS x(book);
    SELECT BookID, Title
    FROM W3Books;
    I got the following error messages:
    Msg 195, Level 15, State 10, Line 7
    'value' is not a recognized built-in function name.
    Msg 156, Level 15, State 1, Line 16
    Incorrect syntax near the keyword 'AS'.
    I don't know why I got the error of 'value' is not a recognized built-in function name. Please kindly help and tell me what is wrong in my code and how to correct the error.
    Thanks, Scott Chang
    P. S.
    (1) I mimicked the xml file and SQL Qeury code of Import XML File to SQL Table in
    http://pratchev.blogspot.com/2008/11/import-xml-file-to-sql-table.html. The xml file and the code of this sample worked in my SSMS 2012 program.
    (2) I am learning the "CAST" and "CROSS APPLY" in the Create Instances of XML Data of Microsoft MSDN - it is very abstract to me.

    Hi Stan210, Thanks for your nice response.
    I corrected my xml file as you pointed out.
    I made some changes in some code statements of my SQLQueryW3BookTitle.sql as you instructed:
    --XQuery w3schools example using books1.xml in C:\Temp folder
    ---SQL Query W3books Title
    ---10 March 2015
    USE XML_XQUERY
    GO
    CREATE TABLE W3Books(
    BookID INt Primary Key,
    Title VARCHAR(30));
    INSERT INTO W3Books (BookID, Title)
    SELECT x.book.value('/BookID[1]', 'INT'),
    x.book.value('/title[1]', 'VARCHAR(30)')
    FROM (
    SELECT CAST(x AS XML)
    FROM OPENROWSET(
    BULK 'C:\Temp\books1.xml',SINGLE_BLOB) AS T(x)
    ) AS T(x)
    CROSS APPLY x.nodes('bookstore/book') AS x(book);
    SELECT BookID, Title
    FROM W3Books;
    I executed my revised sql and I got the following Message and Results:
    Msg 515, Level 16, State 2, Line 6
    Cannot insert the value NULL into column 'BookID', table 'XML_XQUERY.dbo.W3Books'; column does not allow nulls. INSERT fails.
    The statement has been terminated.
    (0 row(s) affected)
    Results:
    BookID    Title
    I don't know why I just got the names of columns in Results and the "Cannot insert the value NULL into column 'BookID', table 'XML_XQUERY.dbo.W3Books'; column does not allow nulls, insert fails." in Messages.  Please kindly help, advise me
    how to correct the errors and respond again.
    Many Thanks again,
    Scott Chang

  • Essbase Rules Files and OCI

    Hi All,
    I am using EPM 11.1.2.1. I want to use rules files and Sql interface to build outline and load data.
    Can anyone please provide / guide me with the steps to connect using ODBC and OCI ? I tried but it gives error
    Error: 1021001 Failed to Establish Connection With SQL Database Server.  See log for more information
    Please advice.
    Thanks

    To use OCI you just need to open SQL from the load rule, select "Oracle Call Interface (OCI) Service Name" and enter the connection details as Oracle Call Interface (OCI) Service Name— $OCI$<server_name> , replacing <server_name> with the oracle db server name.
    Enter the SQL statement, you can test the connection by clicking "OK/retrieve" and then entering the username and password for connecting to oracle.
    Once you are happy you save the rule and it will save the OCI connection, then you can use Maxl like you would with any other SQL load rule.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How can one  read a Excel File and Upload into Table using Pl/SQL Code.

    How can one read a Excel File and Upload into Table using Pl/SQL Code.
    1. Excel File is on My PC.
    2. And I want to write a Stored Procedure or Package to do that.
    3. DataBase is on Other Server. Client-Server Environment.
    4. I am Using Toad or PlSql developer tool.

    If you would like to create a package/procedure in order to solve this problem consider using the UTL_FILE in built package, here are a few steps to get you going:
    1. Get your DBA to create directory object in oracle using the following command:
    create directory TEST_DIR as ‘directory_path’;
    Note: This directory is on the server.
    2. Grant read,write on directory directory_object_name to username;
    You can find out the directory_object_name value from dba_directories view if you are using the system user account.
    3. Logon as the user as mentioned above.
    Sample code read plain text file code, you can modify this code to suit your need (i.e. read a csv file)
    function getData(p_filename in varchar2,
    p_filepath in varchar2
    ) RETURN VARCHAR2 is
    input_file utl_file.file_type;
    --declare a buffer to read text data
    input_buffer varchar2(4000);
    begin
    --using the UTL_FILE in built package
    input_file := utl_file.fopen(p_filepath, p_filename, 'R');
    utl_file.get_line(input_file, input_buffer);
    --debug
    --dbms_output.put_line(input_buffer);
    utl_file.fclose(input_file);
    --return data
    return input_buffer;
    end;
    Hope this helps.

  • File and Transaction Parity in PI 7.1

    Hello,
    We are currently designing our file and transaction Parity architechture for SAP PI 7.1. Could you please let me know where can I start on it. Does PI offers any out of the box parity services and any kind on documentation on it.
    Thank you.

    The procedure is the same as it was in SAP PI7.0 or lower versions.....no major change on this front.
    Search SDN for documents related to your protocol.
    Regards,
    Abhishek.

  • Log file in session and call transaction methods

    Hi Experts,
    How to see log file in session and call transaction methods?

    hi
    If its a session then goto SM35, select ur session and then u can see log button over there at the top... that will give the log
    If its a call transaction then in ur program u need to declare internal table IT_MSGS like this
    DATA:  IT_MSGS LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
      LOOP AT IT_SALES.
        PERFORM POPULATE_BDC.
        CALL TRANSACTION 'VA01' USING IT_BDCDATA
                                      MODE MODE
                                      UPDATE UPDATE
                                      MESSAGES INTO IT_MSGS.
        IF NOT IT_MSGS[] IS INITIAL.
          LOOP AT IT_MSGS.
            CALL FUNCTION 'FORMAT_MESSAGE'
              EXPORTING
                ID        = IT_MSGS-MSGID
                LANG      = 'EN'
                NO        = IT_MSGS-MSGNR
                V1        = IT_MSGS-MSGV1
                V2        = IT_MSGS-MSGV2
                V3        = IT_MSGS-MSGV3
                V4        = IT_MSGS-MSGV4
              IMPORTING
                MSG       = V_MSG
              EXCEPTIONS
                NOT_FOUND = 1
                OTHERS    = 2.
            IF SY-SUBRC <> 0.
              MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ENDIF.
            WRITE:/ V_MSG.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
    This will create a log for you, dont forget to award points if found helpful

  • Load data with SQL Loader link field between CSV file and Control File

    Hi all,
    in a SQL Loader control file, how do you specify link with field in CSV file and Control file?
    E.g. if I wat to import the record in table TEST (col1, col2, col3) with data in csv file BUT in different position. How to do this?
    FILE CSV (with variable position):
    test1;prova;pippo;Ferrari;
    xx;yy;hello;by;
    In the table TEST i want that col1 = 'prova' (xx),
    col2 = 'Ferrari' (yy)
    col3 = default N
    the others data in CSV file are ignored.
    so:
    load data
    infile 'TEST.CSV'
    into table TEST
    fields terminated by ';'
    col1 ?????,
    col2 ?????,
    col3 CONSTANT "N"
    Thanks,
    Attilio

    With '?' mark i mean " How i can link this COL1 with column in csv file ? "
    Attilio

  • System Center 2012 R2 install: SQL server Data file and log file

    This might be a dumb question, but I can't find the answer anywhere.  
    I'm installing a new instance of  System Center 2012 R2 on a new server, I'm stuck on the SQL Server data file section.  Everytime I put in a path, it says that tne path does not exist.  I'm I supposed to be creating some sort of SQL Server
    data file and log file before this installation, I didn't get this prompt when installing System Center 2012 SP1 or hen I upgraded from System Center 2012 SP1 to System Center 2012 R2
    My SQL is on a different server
    Thank you in advanced

    Have you reviewed the setup.log?
    On a side note, why would you put the database file on the same drive as the OS? That defeats the whole purpose of having a remote SQL Server. Why use a remote SQL Server in the first place.
    Jason | http://blog.configmgrftw.com

  • C# application to execute both oracle and sql server script files.

    Hi All,
    I am suppose to develop an application using c# which can execute oracle script files as well as sql server script files based on some user's choice. 
    Both the script files(oracle/sql server) contains scripts to create tables, create views and create functions.
    What is the best way to do this and which existing c# functions should is use.
    Thanks in advance.

    I am suppose to develop an application using c# which can execute oracle script files as well as sql server script files based on some user's choice. 
    You can use SQL Plus for Oracle. You can have a C# program that issues commands  for  scripts for table, views, triggers  creation and the whole 10 yards to SQL Plus,
    http://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm
    https://www.google.com/#q=sql+plus
    I started writing a program to use SQL Plus to run the scripts, but cI ame to the conclusion that it was a waste of my time.
    A tool called OSM, an Oracle, tool gives a list of script files that need to be run do to a change in a script file based on file timestamp. You can copy the list doing a copy/past operation and drop it into SQL Plus's Command line, and SQL Plus runs the
    scripts.
    For MS SQL Server, you have this, which you can run from a C# program too.
    http://www.webfactory-world.de/wfknowledgebase/wfknowledgebase_wf3.3/Content/AdditionalWindowsSettings/Tutorials/UpdatingSQLDBFromCommandLine.htm
    I would consider using the above from a C# program a waste of time too.
    I look at it this way. If the user doesn't have database admin experience and know how to use DB admin tools, then they have no business doing anything with a database - period.
    BTW, the Invoke statement in VB or C# will run SQL Plus or SQL Server command line tool.

  • Sql server data file and log file

    hello experts
    what is the best way to save data file and log file in a two node cluster environment. i have an active\passive cluster with windows server 2008r2 enterprise and sql server 2008r2. i am new to the environment and i noticed that all system and user databases
    including their data and log files are stored in one drive, just curious, what is the best practise in such kinds of scenario, thank you as always for your help.

    Make sure  you have valid/tested  backup strategy for both system and user databases.
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • BO Data Services - Reading from excel file and writing to SQL Server Table

    Hi,
    I would like to read data from an excel file and write it to a SQL Server Data base table without making any transformations using Data Services. I have created an excel file format as source and created target table in SQL Server. The data flow will just have source and target. I am not sure how to map the columns between source and target. Appreciate your quick help in providing a detailed steps of mapping.
    Regards,
    Ramesh

    Ramesh,
    were you able to get this to work? if not, let me know and I can help you out with it.
    Lynne

  • How to design SQL server data file and log file growth

    how to design SQL DB data file and log file growth- SQL server 2012
    if my data file is having 10 GB sizze and log file is having 5 GB size
    what should be the size in MB (not in %) of autogrowth. based on what we have to determine the ideal size of file auto growth.

    It's very difficult to give a definitive answer on this. Best principal is to size your database correctly in advance so that you never have to autogrow, of course in reality that isn't always practical.
    The setting you use is really dictated by the expected growth in your files. Given that the size is relatively small why not set it to 1gb on the datafile(s) and 512mb on the log file? The important thing is to monitor it on an on-going basis to see if that's
    the appropriate amount.
    One thing you should do is enable instant file initialization by granting the service account Perform Volume Maintenance tasks in group policy. This will allow the data files to grow quickly when required, details here:
    https://technet.microsoft.com/en-us/library/ms175935%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396
    Also, it possible to query the default trace to find autogrowth events, if you wanted you could write an alert/sql job based on this 
    SELECT
    [DatabaseName],
    [FileName],
    [SPID],
    [Duration],
    [StartTime],
    [EndTime],
    CASE [EventClass]
    WHEN 92 THEN 'Data'
    WHEN 93 THEN 'Log' END
    FROM sys.fn_trace_gettable('c:\path\to\trace.trc', DEFAULT)
    WHERE
    EventClass IN (92,93)
    hope that helps

  • Advanced Queueing and SQL in same transaction?

    Can Advanced Queueing operations and SQL operations be combined in one atomic transaction? I can't find any reference to this in the Oracle AQ documentation and none of the examples show this. In my application I'm having problems that seem like deadlock when I do combine AQ and SQL in the same transaction. However, when I place them in seperate transactions it works.
    null

    I am also looking for some examples of using SQL/PLSQL w/Advanced Queueing. We currently have the following scenario: One server has non-relational tables; another server has relational tables which house the same data in a relational format. We are looking for a way to migrate the non-relational data to the relational tables and keep the data updated when it changes in the non-relational tables.
    We had considered using materialized views, but, this was ruled out because the non-relational tables are created and dropped on a daily basis.
    My email: [email protected]
    Thanks for any input you may have!

Maybe you are looking for

  • Oracle Express homepage won't load

    When 2000 loads I'll click start database, try to go to the homepage but it isn't broadcasting. I've tried stopping and restarting but it does no good. I haven't installed any firewall's or anything like that, but I don't see what difference that mak

  • Extracting xml content in a XMLTYPE VIEW

    Experts: I need to create an xmltype view based on the following xml content. <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <EMPLOYEES CREATED="2013-02-06T12:33:00" xsi:noNamespaceSchemaLocation="http://supporthtml.oracle.com/TEST_SCHEMA.xs

  • Synchronize WF LOCAL tables in R12 failed with error  :ORA-14501 object is

    Hi All, In our R12 enviroment "Synchronize WF LOCAL tables" conc program failing with :ORA-14501 object is not partitioned. Tried solution as per doc id . 433280.1 -- Partitions in Workflow Local Tables are Automatically Switched to NOLOGGING . But n

  • "Only a single Instance..."

    I am operating windows 32 bit with Internet explorer and had with no problems until I installed Firefox.  While using firefox, it didn't recognize my flash player and said I needed to install the latest version (11.2.202.228).  during the installatio

  • Global mouse listener

    I want to know mouse position on the screen(not in a window). Can't figure out how to do this one. Please help!