EMC Developer Network

Obtain a Repository Session from Session Manager and Release it

December 2005

Software Environment

FeatureTested on
Operating SystemWindows 2000 Server SP4
ProgrammingLanguageC#
CompilerMicrosoft (R) Visual C# 2005 Compiler version 8.00.50727.42
Runtime Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
DFC5.3 SP1
Content Server5.3 SP1
DFC PIA5.3.0.53

Snippet


using System;
using System.Runtime.InteropServices;
using Documentum.Interop.DFC;

namespace CodeSnippets
{
	
	public class GetRepoSession
	{
		public static void Main(String[] args)
		{
			GetRepoSession gr = new GetRepoSession();
			gr.GetSession();

		}

		String username = "dmadmin";
		String password = "dmadmin";
		String repository = "devprog";		

		public void GetSession()
		{

			IDfClientX clientX = null;
			IDfClient localClient = null;
			IDfSessionManager sessMgr = null;
			IDfLoginInfo li = null;
			IDfSession sess = null;
			try
			{
				clientX = new DfClientXClass();
				
				li = clientX.getLoginInfo();
				li.setUser(username);
				li.setPassword(password);

				localClient = clientX.getLocalClient();
				sessMgr = localClient.newSessionManager();

				sessMgr.setIdentity(repository,li);
				sess = sessMgr.getSession(repository);
				
				//Use the session
				Console.WriteLine("Session Id: " + sess.getSessionId());
				
								
				Console.ReadLine();
			}
			catch(Exception ex)
			{
				Console.WriteLine("Authentication Failed");
				Console.WriteLine(ex.Message);
				Console.WriteLine(ex.StackTrace);

			}
			finally
			{
				if(sess != null)
				{
					sessMgr.release(sess);
				}

				if(clientX != null)Marshal.ReleaseComObject(clientX);
				if(localClient != null) Marshal.ReleaseComObject(localClient);
				if(li != null) Marshal.ReleaseComObject(li);
				if(sessMgr != null) Marshal.ReleaseComObject(sessMgr);
				if(sess != null) Marshal.ReleaseComObject(sess);
			}
		}

		
	}
}