This is an example of how to connect to a SAS Metadata Server.
/**
* This is the object factory used to create objects.
*/
private MdFactory _factory = null;
/**
* Default constructor
*/
public MdTesterExamples()
{
//intialize the factory
initializeFactory();
}
private void initializeFactory()
{
try
{
// Construct a new factory. The boolean parameter is used to determine if
// the application is running in a remote or local environment. If the
// data does not need to be accessible across remote JVMs, then
// "false" can be used.
_factory = new MdFactoryImpl(false);
// Intialize debug logging if necessary
boolean debug = false;
if (debug)
{
_factory.setDebug(true);
_factory.setLoggingEnabled(true);
// Set the output streams for logging. The logging output can be
// directed to any OutputStream, including a file.
_factory.getUtil().setOutputStream(System.out);
_factory.getUtil().setLogStream(System.out);
}
else
{
_factory.setDebug(false);
_factory.setLoggingEnabled(false);
}
// To be notified when changes have been persisted to the metadata server
// within this factory (this includes adding objects, updating objects, and
// deleting objects), we can add a listener to the factory.
//
// See MdFactory.addMdFactoryListener()
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* This example makes a connection to the metadata server and checks
* exceptions if there is an error connecting. The server name, port,
* user, and password variables must be substituted with actual values.
* @return true if the connection was successful
*/
public boolean connectToServer()
{
String serverName = "MACHINE_NAME";
String serverPort = "8561";
String serverUser = "USERNAME";
String serverPass = "PASSWORD";
try
{
MdOMRConnection connection = _factory.getConnection();
// this statement makes the connection to the server
connection.makeOMRConnection(serverName, serverPort, serverUser, serverPass);
// the following statements define error handling and error
// reporting messages.
}
catch (MdException e)
{
Throwable t = e.getCause();
if (t != null)
{
String ErrorType = e.getSASMessageSeverity();
String ErrorMsg = e.getSASMessage();
if (ErrorType == null)
{
// if there is no SAS server message, write a Java/CORBA message.
}
else
{
// if there is a message from the server:
System.out.println(ErrorType + ": " + ErrorMsg);
}
if (t instanceof org.omg.CORBA.COMM_FAILURE)
{
// if there is an invalid port number or host name:
System.out.println(e.getLocalizedMessage());
}
else if (t instanceof org.omg.CORBA.NO_PERMISSION)
{
// is there is an invalid user ID or password:
System.out.println(e.getLocalizedMessage());
}
}
else
{
// if we cannot find a nested exception, get message and print.
System.out.println(e.getLocalizedMessage());
}
// if there is an error, print the entire stack trace.
e.printStackTrace();
return false;
}
catch (RemoteException e)
{
//unknown exception.
e.printStackTrace();
return false;
}
// If no errors occur, then a connection is made.
return true;
}