com.documentum.fc.client.impl.session.TicketWatchdog$ExpirationScanner, what does it means

JIMMYCHAN
edited December 18, 2008 in Documentum #1

Hi guys,

After Exceuting the following line of code,

public void OpenSession() throws DfException
{
getProperty();
dfClient = new DfClient();
dfSessionManager = dfClient.newSessionManager();
IDfLoginInfo loginInfo = new DfLoginInfo();
loginInfo.setUser(username);
loginInfo.setPassword(password);
dfSessionManager.setIdentity(docbase, loginInfo);
dfSession = dfSessionManager.newSession(docbase);

if(dfSession.isConnected())
{
System.out.println("Connection Establish .......");
}
}

public void CloseSession() throws Exception
{
// release session
if (dfSession != null)
{
System.out.println("Connection Release .........");
dfSessionManager.release(dfSession);
}
}

public void retrievefile(String r_object_id)
{
try
{
this.OpenSession();
}
catch(DfException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try
{
IDfSysObject sysObj = (IDfSysObject)
dfSession.getObject(new DfId(r_object_id));
String extension = sysObj.getFormat().getDOSExtension();

// build the path - with full filename
File f =new File(".");
String absolutePath = f.getCanonicalPath();
String path =this.path(absolutePath) + sysObj.getObjectName();
sysObj.checkout();
sysObj.getFile(path);
sysObj.cancelCheckout();
System.out.println("File Checked out.....");
}
catch(DfException ex)
{
ex.printStackTrace();
}
catch(IOException ex)
{
ex.printStackTrace();
}
try
{
this.CloseSession();
}
catch(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

My weblogic log keep showing this

[DEBUG] 2008-12-12 15:16:54,525 com.documentum.fc.client.impl.session.TicketWatchdog$ExpirationScanner - Scanned 0 ticket custodians, 0 tickets were refreshed
[DEBUG] 2008-12-12 15:18:54,523 com.documentum.fc.client.impl.session.TicketWatchdog$ExpirationScanner - Scanning ticket custodians for expired tickets
[DEBUG] 2008-12-12 15:18:54,525 com.documentum.fc.client.impl.session.TicketWatchdog$ExpirationScanner - Scanned 0 ticket custodians, 0 tickets were refreshed
[DEBUG] 2008-12-12 15:20:54,523 com.documentum.fc.client.impl.session.TicketWatchdog$ExpirationScanner - Scanning ticket custodians for expired tickets
[DEBUG] 2008-12-12 15:20:54,524 com.documentum.fc.client.impl.session.TicketWatchdog$ExpirationScanner - Scanned 0 ticket custodians, 0 tickets were refreshed

What does the above line means.

It seem to me that the client is holding the session and did not release it.

Thanks

Comments

  • Chris_Campbell
    edited December 18, 2008 #2

    Just the opposite.  In fact, what you're seeing has nothing to do with your code.  Tickets are most often issued on behalf of running processes.  Rather than establishing a new session with a name and password, an already running session can create a new connection on behalf of a process by issuing a ticket.  You'll see this happening with workflows all the time.  Tickets can be set to run several times or just a single time.

    Tickets, just like sessions, take up valuable connections and thus need to be monitored.  So you've got TicketWatchdog which works with TicketCustodian to make sure that connections do what they're told and die when they're supposed to.  The messages you're seeing are just stating "They're aren't any ticket custodians currently, so I didn't need to refresh anything."

    Since your code is explictly using SessionManager, you're not involved in TicketWatchdog and what it does.  So why all the debug messages?  Well, all of the above classes are part of the com.documentum.fc.client.impl.session package.  You debug one, you debug them all.  (Actually the TicketWatchdog messages are set to the info logging level, so get used to seeing them in your logs.  A lot.)  So you can safely ignore those messages.

  • JIMMYCHAN
    edited December 18, 2008 #3

    Hi Chris,

    Thanks for your reply.

    Because everytime i redeploy an ear file into my weblogic. It seem to me that some process (which I suspect is the com.documentum.fc.client.impl.session.TicketWatchdog$ExpirationScanner) is holding on and thus disallow me to redeploy the ear file.

    In this case, how do I totally release the Tickets since they take up valuable connections.

    Thanks