0

I’m writing in order to get some help. To be short, I’m trying to use com.unboundid.ldap.sdk (but it is not necessary - the same problem i get if i use oracle's javax.naming.ldap.*) to handle with ldap transactions, and I get the following error:

Exception in thread "Main Thread" java.lang.AssertionError: Result EndTransactionExtendedResult(resultCode=2 (protocol error), diagnosticMessage='protocol error') did not have the expected result code of '0 (success)'. at com.unboundid.util.LDAPTestUtils.assertResultCodeEquals(LDAPTestUtils.java:1484) at pkg.Main.main(Main.java:116)

My program is the following ( I’m using simple example from https://www.unboundid.com/products/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/extensions/StartTransactionExtendedRequest.html ) :

public class Main {
    public static void main( String[] args ) throws LDAPException {

        LDAPConnection connection = null;
        try {
    connection = new LDAPConnection("***", ***, "***", "***");
        } catch (LDAPException e1) {
            e1.printStackTrace();
        }

        // Use the start transaction extended operation to begin a transaction.
         StartTransactionExtendedResult startTxnResult;
         try
         {
           startTxnResult = (StartTransactionExtendedResult)
                connection.processExtendedOperation(
                     new StartTransactionExtendedRequest());
           // This doesn't necessarily mean that the operation was successful, since
           // some kinds of extended operations return non-success results under
           // normal conditions.
         }
         catch (LDAPException le)
         {
           // For an extended operation, this generally means that a problem was
           // encountered while trying to send the request or read the result.
           startTxnResult = new StartTransactionExtendedResult(
                new ExtendedResult(le));
         }
         LDAPTestUtils.assertResultCodeEquals(startTxnResult, ResultCode.SUCCESS);
         ASN1OctetString txnID = startTxnResult.getTransactionID();


         // At this point, we have a transaction available for use.  If any problem
         // arises, we want to ensure that the transaction is aborted, so create a
         // try block to process the operations and a finally block to commit or
         // abort the transaction.
         boolean commit = false;
         try
         {
             // do nothing
         }
         finally
         {
           // Commit or abort the transaction.
           EndTransactionExtendedResult endTxnResult;
           try
           {
             endTxnResult = (EndTransactionExtendedResult)
                  connection.processExtendedOperation(
                       new EndTransactionExtendedRequest(txnID, commit));
           }
           catch (LDAPException le)
           {
             endTxnResult = new EndTransactionExtendedResult(new ExtendedResult(le));
           }
           LDAPTestUtils.assertResultCodeEquals(endTxnResult, ResultCode.SUCCESS);
         }
    }
}

As you can see, I do nothing with the transaction: just start and rolling back, but it still not working. Connection is ok, and I receive transaction id = F10285501E20C32AE040A8C0070F7502 BUT IT ALWAYS THE SAME - is it all wrigth??? If “// do nothing” replace with some action exception: unwilling to perform.

I’m starting to think that it is OID problem, but I just can’t figure out what is wrong… OID is on a WebLogic server and it’s version is :

Version Information

ODSM 11.1.1.6.0

OID 11.1.1.6.0

DB 11.2.0.2.0

All ideas will be appreciated.

  • Which LDAP server are you using? And does the problem still happen if you do something rather than nothing before committing or aborting? – user207421 Feb 04 '14 at 17:36
  • I'm using OID - "Oracle Internet Directory (OID) is a standard LDAP directory server. OID is part of the Oracle Application Server." Version 11.1.1.6.0 as described above. – user3271133 Feb 05 '14 at 09:55
  • If i do something, following exception is generated: LDAPException(resultCode=53 (unwilling to perform), errorMessage='unwilling to perform'). I can be sure that i'm trying to use correct modification because if i am not setting a controls - the modification works ( but without transaction of corse ) – user3271133 Feb 05 '14 at 11:45

0 Answers0