Product overview > Tutorials, examples, and samples > Java SE security tutorial


Java SE security tutorial - Step 1


Start servers and clients

  1. Start a catalog server named catalogServer...

    cd objectgridRoot/bin
    
    ./startOgServer.sh catalogServer

  2. Launch a container server named c0...

    startOgServer.sh c0 -objectGridFile ../xml/SimpleApp.xml 
                        -deploymentPolicyFile ../xml/SimpleDP.xml 
                        -catalogServiceEndpoints localhost:2809 
    

  3. Launch the client...

    java -classpath ../lib/objectgrid.jar;../applib/secsample.jar 
          com.ibm.websphere.objectgrid.security.sample.guide.SimpleApp 
    

  4. The output of this program is...

    The customer name for ID 0001 is fName lName


Show mapsizes of the "accounting" grid

$ cd objectgridRoot/bin

$./xsadmin.sh -g accounting -m mapSet1 -mapSizes Connect to Catalog service at localhost:1099 *** Displaying Results for Grid - accounting, MapSet - mapSet1 *** Listing Maps for c0 Map Name: customer Partition #: 0 Map Size: 1 Shard Type: Primary Server Total: 1 Total Domain Count: 1


Stop servers

To stop container server c0.

stopOgServer.sh c0 -catalogServiceEndPoints localhost:2809

You will see the following message.

CWOBJ2512I: ObjectGrid server c0 stopped.

You can stop a catalog server using...

./stopOgServer.sh catalogServer -catalogServiceEndPoints localhost:2809

If you shut down the catalog server, we will see the following message.

CWOBJ2512I: ObjectGrid server catalogServer stopped. Required files

The file below is the Java class for SimpleApp.

// SimpleApp.java
package com.ibm.websphere.objectgrid.security.sample.guide;

import com.ibm.websphere.objectgrid.ClientClusterContext;
import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectGridManager;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
import com.ibm.websphere.objectgrid.ObjectMap;
import com.ibm.websphere.objectgrid.Session;

public class SimpleApp 
{
    public static void main(String[] args) throws Exception 
    {

        SimpleApp app = new SimpleApp();
        app.run(args);
    }

    /**
     * read and write the map 
     * @throws Exception
     */
    protected void run(String[] args) throws Exception 
    {
        ObjectGrid og = getObjectGrid(args);

        Session session = og.getSession();

        ObjectMap customerMap = session.getMap("customer");

        String customer = (String) customerMap.get("0001");

        if (customer == null) 
        {
            customerMap.insert("0001", "fName lName");
        } else 
        {
            customerMap.update("0001", "fName lName");
        }
        customer = (String) customerMap.get("0001");

        System.out.println("The customer name for ID 0001 is " + customer);
    }

    /**
     * Get the ObjectGrid
     * @return an ObjectGrid instance
     * @throws Exception
     */
    protected ObjectGrid getObjectGrid(String[] args) throws Exception 
    {
        ObjectGridManager ogManager = ObjectGridManagerFactory.getObjectGridManager();

        // Create an ObjectGrid 
        ClientClusterContext ccContext = ogManager.connect("localhost:2809", null, null);
        ObjectGrid og = ogManager.getObjectGrid(ccContext, "accounting");

        return og;

    }

}

The getObjectGrid method in this class obtains an ObjectGrid, and the run method reads a record from the customer map and updates the value.

To run this sample in a distributed environment, an ObjectGrid descriptor XML file SimpleApp.xml, and a deployment XML file, SimpleDP.xml, are created. The files are featured in the following example:

SimpleApp.xml

<?xml version="1.0" encoding="UTF-8"?>
<objectGridConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd" 
    xmlns="http://ibm.com/ws/objectgrid/config">
   
<objectGrids>
       
<objectGrid name="accounting">
           
<backingMap name="customer" readOnly="false" copyKey="true"/>
       
</objectGrid>
   
</objectGrids>
</objectGridConfig>

The following XML file configures the deployment environment.

SimpleDP.xml

<?xml version="1.0" encoding="UTF-8"?>
<deploymentPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://ibm.com/ws/objectgrid/deploymentPolicy ../deploymentPolicy.xsd"
    xmlns="http://ibm.com/ws/objectgrid/deploymentPolicy">

    <objectgridDeployment objectgridName="accounting">
        <mapSet name="mapSet1" numberOfPartitions="1" minSyncReplicas="0" maxSyncReplicas="2" 
            maxAsyncReplicas="1">
            <map ref="customer"/>
        </mapSet>
    </objectgridDeployment>
</deploymentPolicy>

This is a simple ObjectGrid configuration with one ObjectGrid instance named "accounting" and one map named "customer" (within the mapSet "mapSet1"). The SimpleDP.xml file features one map set that is configured with 1 partition and 0 minimum required replicas.

Next step of tutorial


Parent topic:

Java SE security tutorial: overview


Next topic:

Java SE security tutorial - Step 2