[DM_SESSION_E_AUTH_FAIL]error: "Authentication failed for user Development with docbase Development

Options
Imran_Yusubov
edited February 1, 2013 in Documentum #1

Hello Experts,

Please let me to find out the reason of this problem.

Caused by: java.lang.RuntimeException: DfAuthenticationException:: THREAD: http-0.0.0.0-9080-1; MSG: [DM_SESSION_E_AUTH_FAIL]error:  "Authentication failed for user Developmentwith docbase Development."; ERRORCODE: 100; NEXT: null

    at com.emc.xcelerator.activities.GenerateNumberImpl.generateNumber(GenerateNumberImpl.java:62)

    ... 39 more

Caused by: DfAuthenticationException:: THREAD: http-0.0.0.0-9080-1; MSG: [DM_SESSION_E_AUTH_FAIL]error:  "Authentication failed for user Development with docbase Development."; ERRORCODE: 100; NEXT: null

    at com.documentum.fc.client.impl.docbase.DocbaseExceptionMapper.newException(DocbaseExceptionMapper.java:52)

    at com.documentum.fc.client.impl.connection.docbase.MessageEntry.getException(MessageEntry.java:39)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseMessageManager.getException(DocbaseMessageManager.java:137)

    at com.documentum.fc.client.impl.connection.docbase.netwise.NetwiseDocbaseRpcClient.checkForMessages(NetwiseDocbaseRpcClient.java:310)

    at com.documentum.fc.client.impl.connection.docbase.netwise.NetwiseDocbaseRpcClient.applyForObject(NetwiseDocbaseRpcClient.java:653)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection$8.evaluate(DocbaseConnection.java:1293)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.evaluateRpc(DocbaseConnection.java:1056)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.applyForObject(DocbaseConnection.java:1285)

    at com.documentum.fc.client.impl.docbase.DocbaseApi.authenticateUser(DocbaseApi.java:1703)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.authenticate(DocbaseConnection.java:417)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.open(DocbaseConnection.java:128)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.<init>(DocbaseConnection.java:97)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.<init>(DocbaseConnection.java:60)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionFactory.newDocbaseConnection(DocbaseConnectionFactory.java:26)

    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.getDocbaseConnection(DocbaseConnectionManager.java:85)

    at com.documentum.fc.client.impl.session.SessionFactory.newSession(SessionFactory.java:29)

    at com.documentum.fc.client.impl.session.PrincipalAwareSessionFactory.newSession(PrincipalAwareSessionFactory.java:42)

    at com.documentum.fc.client.impl.session.PooledSessionFactory.newSession(PooledSessionFactory.java:47)

    at com.documentum.fc.client.impl.session.SessionManager.getSessionFromFactory(SessionManager.java:111)

    at com.documentum.fc.client.impl.session.SessionManager.newSession(SessionManager.java:64)

    at com.documentum.fc.client.impl.session.SessionManager.getSession(SessionManager.java:168)

    at com.emc.xcelerator.activities.generatenumbers.OutOfTransactionDecoratorSequenceGenerator.getNextGeneratedNumber(OutOfTransactionDecoratorSequenceGenerator.java:60)

    at com.emc.xcelerator.activities.GenerateNumberImpl.getNextNumber(GenerateNumberImpl.java:102)

    at com.emc.xcelerator.activities.GenerateNumberImpl.generateNumber(GenerateNumberImpl.java:54)

    ... 39 more

Development is the name of my docbase. The problem is thrown from a custom module.


Thanks in advance

Tagged:

Best Answer

  • PanfilovAB
    edited February 1, 2013 #2 Answer ✓
    Options

    If you running this code:

            if (session.isTransactionActive()) {
                IDfSessionManager sessionManager = DfClient.getLocalClient().newSessionManager();
                String repository = session.getDocbaseName();
                IDfLoginInfo credentials = session.getLoginInfo();
                sessionManager.setIdentity(repository, credentials);
                IDfSession newSession = null;
                try {
                    newSession = sessionManager.getSession(session.getDocbaseName());
                    return sequenceGenerator.getNextGeneratedNumber(newSession, numberSequenceName);
                } finally {
                    if (newSession != null) {
                        sessionManager.release(newSession);
                    }
                }
            } else {
                return sequenceGenerator.getNextGeneratedNumber(session, numberSequenceName);
            }

    try something like:

            if (session.isTransactionActive()) {
                IDfSessionManager sessionManager = DfClient.getLocalClient().newSessionManager();
                String repository = session.getDocbaseName();
                IDfLoginInfo credentials = session.getLoginInfo();
                credentials.setPassword(session.getLoginTicket());
                //credentials.setPassword(session.getLoginTicketEx(null, "docbase", 65535, false, null));
                sessionManager.setIdentity(repository, credentials);
                IDfSession newSession = null;
                try {
                    newSession = sessionManager.getSession(session.getDocbaseName());
                    return sequenceGenerator.getNextGeneratedNumber(newSession, numberSequenceName);
                } finally {
                    if (newSession != null) {
                        sessionManager.release(newSession);
                    }
                }
            } else {
                return sequenceGenerator.getNextGeneratedNumber(session, numberSequenceName);
            }

Answers

  • Haroon_A
    edited January 31, 2013 #3
    Options

    I think the error is pretty self explanitory. Authentication issue.

    Can you describe your scenario, where this error is thrown and when?

  • PanfilovAB
    edited January 31, 2013 #4
    Options

    Post full staktrace.

  • Imran_Yusubov
    edited January 31, 2013 #5
    Options

    Hello Ahmad,

    What I am really trying to do to fix a problem with this xcelerator. https://community.emc.com/docs/DOC-7268#comment-20574

    I had been using it for more than a year and it was great; however, there had been some modification related to session management in CS 6.7 sp1 P05.  I have installed PO6 and I faced "com.documentum.fc.common.DfRuntimeException: Using session handle that has already been released"  problem, to fix it I have done the modifications listed in the xcelerator's home page. Interestingly, it caused to another problem.

    Now I am not sure if this error related to my environment or to the code. I don't want to make big modifications to it as well.

    Thanks in advance

  • ckickel
    edited January 31, 2013 #6
    Options

    Error code 100 is often "not found".  Make certain the username 'Documentum' is an exact match for an active user on your Development Content Server.

  • PanfilovAB
    edited February 1, 2013 #7
    Options
    ckickel wrote:Error code 100 is often "not found".  Make certain the username 'Documentum' is an exact match for an active user on your Development Content Server.

    You are wrong, in my test enviroment invalid password during authentication generates error code 100:

    Exception in thread "main" DfAuthenticationException:: THREAD: main; MSG: [DM_SESSION_E_AUTH_FAIL]error:  "Authentication failed for user dmadmin with docbase esed_rt."; ERRORCODE: 100; NEXT: null    at com.documentum.fc.client.impl.docbase.DocbaseExceptionMapper.newException(DocbaseExceptionMapper.java:52)    at com.documentum.fc.client.impl.connection.docbase.MessageEntry.getException(MessageEntry.java:39)    at com.documentum.fc.client.impl.connection.docbase.DocbaseMessageManager.getException(DocbaseMessageManager.java:137)    at com.documentum.fc.client.impl.connection.docbase.netwise.NetwiseDocbaseRpcClient.checkForMessages(NetwiseDocbaseRpcClient.java:310)    at com.documentum.fc.client.impl.connection.docbase.netwise.NetwiseDocbaseRpcClient.applyForObject(NetwiseDocbaseRpcClient.java:653)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection$8.evaluate(DocbaseConnection.java:1293)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.evaluateRpc(DocbaseConnection.java:1056)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.applyForObject(DocbaseConnection.java:1285)    at com.documentum.fc.client.impl.docbase.DocbaseApi.authenticateUser(DocbaseApi.java:1703)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.authenticate(DocbaseConnection.java:417)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.open(DocbaseConnection.java:128)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.<init>(DocbaseConnection.java:97)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.<init>(DocbaseConnection.java:60)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionFactory.newDocbaseConnection(DocbaseConnectionFactory.java:26)    at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.getDocbaseConnection(DocbaseConnectionManager.java:85)    at com.documentum.fc.client.impl.session.SessionFactory.newSession(SessionFactory.java:29)    at com.documentum.fc.client.impl.session.PrincipalAwareSessionFactory.newSession(PrincipalAwareSessionFactory.java:42)    at com.documentum.fc.client.impl.session.PooledSessionFactory.newSession(PooledSessionFactory.java:47)    at com.documentum.fc.client.impl.session.SessionManager.getSessionFromFactory(SessionManager.java:111)    at com.documentum.fc.client.impl.session.SessionManager.newSession(SessionManager.java:64)    at com.documentum.fc.client.impl.session.SessionManager.getSession(SessionManager.java:168)
  • Imran_Yusubov
    edited February 1, 2013 #8
    Options

    99% this error is related to invalid password. I find out that after executing the activity for more than 3 times, the OS account gets locked. Yet, I don't know the reason.

  • PanfilovAB
    edited February 1, 2013 #9
    Options

    Post full stacktrace

  • Imran_Yusubov
    edited February 1, 2013 #10
    Options

    Hello,

    Here is the trace file. Please let me know if you require mor info.

    Thanks in advance

  • PanfilovAB
    edited February 1, 2013 #11
    Options

    Imran,

    full stacktrace is the full information that java writes about an error. Information you provided in the initial post does not allow to deternime the origin of an error:

    after

    com.emc.xcelerator.activities.GenerateNumberImpl.generateNumber(GenerateNumberImpl.java:54)

        ... 39 more

    should be a bit more information.

  • Imran_Yusubov
    edited February 1, 2013 #12
    Options

    The problem is that my code runs without a problem in eclipse, but when JMS trys to call it I get this error.

    . Can you let me know a better way to get the details from JMS. I have turned on tracing but still can't get details.

  • PanfilovAB
    edited February 1, 2013 #13
    Options
    when JMS trys to call it I get this error.

    It's the only thing I wanted to confirm by reading full logs.

    The problem is here:

        at com.documentum.fc.client.impl.session.SessionManager.newSession(SessionManager.java:64)

        at com.documentum.fc.client.impl.session.SessionManager.getSession(SessionManager.java:168)

    when code executed on JMS CS generates login ticket for user, this ticket can be used only once, when your xcellerator tries to acquire new sessions it runs into error because ticket is not valid anymore.

  • Imran_Yusubov
    edited February 1, 2013 #14
    Options

    Hello,  please take a look at the discussions at the end of this.

    https://community.emc.com/docs/DOC-7268#comment-20574

    I encountered a problem due to a new feature in cs 6.7 sp 1 po5. To fix it I have modified the code accordingly.

    Please let me know if you find a problem with it.

    Thanks in advance

  • PanfilovAB
    edited February 1, 2013 #15 Answer ✓
    Options

    If you running this code:

            if (session.isTransactionActive()) {
                IDfSessionManager sessionManager = DfClient.getLocalClient().newSessionManager();
                String repository = session.getDocbaseName();
                IDfLoginInfo credentials = session.getLoginInfo();
                sessionManager.setIdentity(repository, credentials);
                IDfSession newSession = null;
                try {
                    newSession = sessionManager.getSession(session.getDocbaseName());
                    return sequenceGenerator.getNextGeneratedNumber(newSession, numberSequenceName);
                } finally {
                    if (newSession != null) {
                        sessionManager.release(newSession);
                    }
                }
            } else {
                return sequenceGenerator.getNextGeneratedNumber(session, numberSequenceName);
            }

    try something like:

            if (session.isTransactionActive()) {
                IDfSessionManager sessionManager = DfClient.getLocalClient().newSessionManager();
                String repository = session.getDocbaseName();
                IDfLoginInfo credentials = session.getLoginInfo();
                credentials.setPassword(session.getLoginTicket());
                //credentials.setPassword(session.getLoginTicketEx(null, "docbase", 65535, false, null));
                sessionManager.setIdentity(repository, credentials);
                IDfSession newSession = null;
                try {
                    newSession = sessionManager.getSession(session.getDocbaseName());
                    return sequenceGenerator.getNextGeneratedNumber(newSession, numberSequenceName);
                } finally {
                    if (newSession != null) {
                        sessionManager.release(newSession);
                    }
                }
            } else {
                return sequenceGenerator.getNextGeneratedNumber(session, numberSequenceName);
            }
  • Imran_Yusubov
    edited February 1, 2013 #16
    Options

    credentials.setPassword(session.getLoginTicket());

    This did the trick.

    Thank you very much, why I was searching the problem in my environment .

  • PanfilovAB
    edited February 1, 2013 #17
    Options
    Thank you very much, why I was searching the problem in my environment .

    Actually, it can be a problem in your environment, how many CS instances do you have for one docbase?

  • PanfilovAB
    edited February 1, 2013 #18
    Options

    Do not pay attention for my last question: I just thought you have an issue with trusted login, but according to your logs you are running methods not under installation owner account.