This is archived documentation for an older version of Nirvana (v3.1). Please refer to documentation for the latest version if required.

How do I connect to a Nirvana server

In the Nirvana programming model there are a number of logical steps that need to be followed to establish a connection to the Realm. These involve establishing a session, obtaining a reference to a channel or a transaction, or registering an object as a subscriber. This FAQ explains the logical and programmatic steps required to take advantage of the superior functionality and performance offered by Nirvana.

Nirvana Sessions

A session in Nirvana represents a logical connection to a Nirvana Realm. It consists of a set of session attributes, such as the protocol and authentication mechanism to be used, the host and port the message server is running on and a reconnect handler object. The following figures illustrate the class structure and the logical steps involved in creating a session to a Nirvana Realm.

Most of the session parameters are defined in a string that is called RNAME and resembles a URL. All the sample applications provided use an RNAME Java system property to obtain the necessary session attributes. The following section discusses this in further detail. The RNAME takes the following format.

<wire protocol> :// <hostname> :< port>, <wire protocol> :// <hostname> : <port>

The RNAME entry can contain up 4 comma-separated values each one representing one of the 4 interfaces that a Nirvana Realm can use. Click here for more information on RNAME.

The current version of the Nirvana Realm and the Nirvana client API supports 4 TCP wire protocols. These are the Nirvana Socket Protocol (nsp), the Nirvana HTTP Protocol (nhp), the Nirvana SSL Protocol (nsps) and the Nirvana HTTPS protocol (nhps). These wire protocols are available wherever a connection is required, i.e. client to Realm and Realm to Realm. Click here for more information on wire protocols supported.

Creating a Nirvana session

To create a Nirvana Session follow the steps below:

1. Create a nSessionAttrib object with the RNAME value of your choice

String[] RNAME=({“nsp://127.0.0.1:9000”});
nSessionAttrib nsa=new nSessionAttrib(RNAME);

2. Call the create method on nSessionFactory to create your session

nSession mySession=nSessionFactory.create(nsa);

Alternatively, if you require the use of a session reconnect handler to intercept the automatic reconnection attempts, pass an instance of that class too in the create method:

Public class myReconnectHandler implements nReconnectHandler{

}

myReconnectHandler rhandler=new myReconnectHandler();
nSession mySession=nSessionFactory.create(nsa, rhandler);

3. Initialise the session object to open the connection to the Nirvana Realm

mySession.init();

After initialising your Nirvana session, you will be connected to the Nirvana Realm. From that point, all functionality is subject to a Realm ACL check. If you call a method that requires a permission your credential does not have, you will receive an nSecurityException. Click here for more information on Nirvana ACLs.