I need a test program to get the database into this same state.  I have tried 
the following in attempt to get the database into the state.  If I query 
syscs_diag.transaction_table, I see

but if I restart the database service, the ACTIVE transaction is no longer 
present.  So it seems that this does not get the database into the same state 
where there are ACTIVE XA transactions but no connections associated with these 
transactions.

In trying to write a utility, I need first to get the database into the same 
state.  I cannot risk shutting down the customer's system if it is going to 
take hours to come back up.  I need some way of either committing or rolling 
back these transactions while the system is up and running.

    public static void main(String[] args) {
        // Create a variable for the connection string.
        String connectionUrl = "jdbc:derby://localhost:1527/csemdb" + 
";user=CSEM;password=CSEM";

        try {
            // Establish the connection.
            Class.forName("org.apache.derby.jdbc.ClientDriver");
            Connection con = DriverManager.getConnection(connectionUrl);

            // Create a test table.
            Statement stmt = con.createStatement();
            try {
                stmt.executeUpdate("DROP TABLE XAMin");
            } catch (Exception e) {
            }
            stmt.executeUpdate("CREATE TABLE XAMin (f1 int, f2 varchar(1024))");
            stmt.close();
            con.close();

            // Create the XA data source and XA ready connection.
            ClientXADataSource ds = new ClientXADataSource();
            ds.setUser("CSEM");
            ds.setPassword("CSEM");
            ds.setServerName("localhost");
            ds.setPortNumber(1527);
            ds.setDatabaseName("csemdb");
            XAConnection xaCon = ds.getXAConnection();
            con = xaCon.getConnection();

            // Get a unique Xid object for testing.
            XAResource xaRes = null;
            Xid xid = null;
            xid = XidImpl.getUniqueXid(1);

            // Get the XAResource object and set the timeout value.
            xaRes = xaCon.getXAResource();
//            xaRes.setTransactionTimeout(150);

            // Perform the XA transaction.
            System.out.println("Write -> xid = " + xid.toString());
            xaRes.start(xid, XAResource.TMNOFLAGS);
            PreparedStatement pstmt = con.prepareStatement("INSERT INTO XAMin 
(f1,f2) VALUES (?, ?)");
            pstmt.setInt(1, 1);
            pstmt.setString(2, xid.toString());
            pstmt.executeUpdate();

            // Commit the transaction.
//            xaRes.end(xid, XAResource.TMSUCCESS);
//            xaRes.prepare(xid);
//            try {
//                //xaRes.commit(xid, true);
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//
//            // Cleanup.
//            pstmt.close();
//            con.close();
//            xaCon.close();
//
//            // Open a new connection and read back the record to verify that 
it worked.
//            con = DriverManager.getConnection(connectionUrl);
//            ResultSet rs = con.createStatement().executeQuery("SELECT * FROM 
XAMin");
//            rs.next();
//            System.out.println("Read -> xid = " + rs.getString(2));
//            rs.close();
//            con.close();
        } // Handle any errors that may have occurred.
        catch (Exception e) {
            e.printStackTrace();
        }
        System.exit(1);


-----Original Message-----
From: Bergquist, Brett [mailto:bbergqu...@canoga.com]
Sent: Tuesday, December 06, 2011 11:45 AM
To: derby-dev@db.apache.org
Subject: RE: how can I force a rollback of an XA transaction

The database has the following transactions being show from querying 
syscs_diag.transaction_table:

NPCAcv# sh /opt/csem/canogaview/app/scripts/solaris/gettrans.sh
ij version 10.8
ij> ij> XID            |GLOBAL_XID                                              
                                                                        
|USERNAME                                                                       
                                                 |TYPE                          
|STATUS  |FIRST_INSTANT       |SQL_TEXT
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1089187896     
|(4871251,588b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188131     
|(4871251,638b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188159     
|(4871251,648b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187793     
|(4871251,518b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187804     
|(4871251,508b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188329     
|(4871251,6e8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187874     
|(4871251,558b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102388777     
|(4871251,43e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188296     
|(4871251,6b8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187948     
|(4871251,598b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102388811     
|(4871251,49e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188058     
|(4871251,5e8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188423     
|(4871251,6f8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188227     
|(4871251,668b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102388774     
|(4871251,42e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187872     
|(4871251,568b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188129     
|(4871251,628b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188425     
|(4871251,718b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187780     
|(4871251,4c8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188258     
|(4871251,6a8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188088     
|(4871251,608b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187779     
|(4871251,4e8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187873     
|(4871251,578b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188008     
|(4871251,5d8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188233     
|(4871251,678b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |(462881,845067)     |NULL
1089188322     
|(4871251,6c8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1097595231     
|(4871251,bbde2b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187814     
|(4871251,528b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102388810     
|(4871251,48e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102383932     
|(4871251,41e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187870     
|(4871251,538b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102388800     
|(4871251,47e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187871     
|(4871251,548b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187771     
|(4871251,4b8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |(462881,826529)     |NULL
1089188007     
|(4871251,5c8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188086     
|(4871251,618b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102388796     
|(4871251,46e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188323     
|(4871251,6d8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089187986     
|(4871251,5a8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188426     
|(4871251,708b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1102376671     
|(4871251,40e72b00c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188238     
|(4871251,688b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188226     
|(4871251,658b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL
1089188085     
|(4871251,5f8b2100c7e5bef84e50434163762c7365727665722c5033373030,4e50434163762c7365727665722c50333730302c00)
                     |CSEM                                                      
                                                                      
|UserTransaction               |ACTIVE  |NULL                |NULL

44 rows selected


I have stopped the application server so I know that it is not active and there 
are no other connections open to the database beside the connection being used 
by IJ.  I tried the little utility to see if I could cause these transactions 
to rollback, but it acts as if it does not see these transactions because they 
are active.

The utility is basically what you suggested Knut.

Any ideas on where to go from here?

-----Original Message-----
From: Bergquist, Brett [mailto:bbergqu...@canoga.com]
Sent: Tuesday, December 06, 2011 9:50 AM
To: derby-dev@db.apache.org
Subject: RE: how can I force a rollback of an XA transaction

I will give this a try and that is exactly what I was just trying to write.  
This is the second time in about 5 years that this has happened :(  I need to 
get away from using XA but the application server was bitching without it.

Thank you for your help on this.  It would have taken me much longer to come up 
with this myself.

Brett

-----Original Message-----
From: Knut Anders Hatlen [mailto:knut.hat...@oracle.com]
Sent: Tuesday, December 06, 2011 9:27 AM
To: derby-dev@db.apache.org
Subject: Re: how can I force a rollback of an XA transaction

"Bergquist, Brett" <bbergqu...@canoga.com> writes:

> The JVM that derby was running in crashed with a SEGV.  There
> application server also went down.  When I brought both up, the
> database shows two XA transactions in the PREPARE state (looking at
> syscs_diag.transaction_table) but the application server has no
> reference to these transactions to force a rollback.  Files in the
> database “log” directory are being created, with 3862 being the
> current count.
>
> I need a way to get this to be cleaned up.  It would be best if this
> could be done with the database online as I don’t have days to wait
> for the database to come up.

Hi Brett,

If your application server doesn't manage to recover the transactions,
you could try to run the XA recovery procedure manually. Something like
this (untested) code:

XAConnection xac = ...; // get connection from the XADataSource
XAResource xar = xac.getXAResource();

for (Xid xid : xar.recover(XAResource.TMSTARTRSCAN)) {
    xar.rollback(xid);
    // or commit:
    // xar.commit(xid, false);
}

Hope this helps,

--
Knut Anders

Reply via email to