type=page
status=published
title=Administering the Object Request Broker (ORB)
next=javamail.html
prev=concurrent.html
~~~~~~
Administering the Object Request Broker (ORB)
=============================================

[[GSADG00018]][[abltr]]


[[administering-the-object-request-broker-orb]]
15 Administering the Object Request Broker (ORB)
------------------------------------------------

GlassFish Server supports a standard set of protocols and formats that
ensure interoperability. Among these protocols are those defined by
CORBA. The Object Request Broker (ORB) is the central component of
CORBA. The ORB provides the required infrastructure to identify and
locate objects, handle connection management, deliver data, and request
communication. This chapter describes how to configure the ORB and the
IIOP listeners.

The following topics are addressed here:

* link:#ablts[About the ORB]
* link:#abltw[Configuring the ORB]
* link:#ablty[Administering IIOP Listeners]

Instructions for accomplishing the tasks in this chapter by using the
Administration Console are contained in the Administration Console
online help.

[[ablts]][[GSADG00590]][[about-the-orb]]

About the ORB
~~~~~~~~~~~~~

The Common Object Request Broker Architecture (CORBA) model is based on
clients requesting services from distributed objects or servers through
a well-defined interface by issuing requests to the objects in the form
of remote method requests. A remote method request carries information
about the operation that needs to be performed, including the object
name (called an object reference) of the service provider and
parameters, if any, for the invoked method. CORBA automatically handles
network programming tasks such as object registration, object location,
object activation, request de-multiplexing, error-handling, marshalling,
and operation dispatching.

[[abltw]][[GSADG00591]][[configuring-the-orb]]

Configuring the ORB
~~~~~~~~~~~~~~~~~~~

A CORBA object never talks directly with another. Instead, the object
makes requests through a remote stub to the Internet Inter-Orb Protocol
(IIOP) running on the local host. The local ORB then passes the request
to an ORB on the other host using IIOP. The remote ORB then locates the
appropriate object, processes the request, and returns the results.

IIOP can be used as a Remote Method Invocation (RMI) protocol by
applications or objects using RMI-IIOP. Remote clients of enterprise
beans (EJB modules) communicate with GlassFish Server by using RMI-IIOP.

[[ablty]][[GSADG00592]][[administering-iiop-listeners]]

Administering IIOP Listeners
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

An IIOP listener is a listen socket that accepts incoming connections
from the remote clients of enterprise beans and from other CORBA-based
clients. Multiple IIOP listeners can be configured for GlassFish Server.
For each listener, specify a port number (optional; default 1072), a
network address, and security attributes (optional). If you create
multiple listeners, you must assign a different port number for each
listener.

The following topics are addressed here:

* link:#gioyo[To Create an IIOP Listener]
* link:#giowc[To List IIOP Listeners]
* link:#giwlq[To Update an IIOP Listener]
* link:#giowj[To Delete an IIOP Listener]

[[gioyo]][[GSADG00478]][[to-create-an-iiop-listener]]

To Create an IIOP Listener
^^^^^^^^^^^^^^^^^^^^^^^^^^

Use the `create-iiop-listener` subcommand in remote mode to create an
IIOP listener.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  Create an IIOP listener by using the
link:../reference-manual/create-iiop-listener.html#GSRFM00032[`create-iiop-listener`] subcommand. +
Information about the properties for the subcommand is included in this
help page.
3.  To apply your changes, restart GlassFish Server. +
See link:domains.html#ginqj[To Restart a Domain].

[[GSADG00263]][[gipfl]]


Example 15-1 Creating an IIOP Listener

This example creates an IIOP listener named `sample_iiop_listener`.

[source,oac_no_warn]
----
asadmin> create-iiop-listener --listeneraddress 192.168.1.100
--iiopport 1400 sample_iiop_listener
Command create-iiop-listener executed successfully.
----

[[GSADG1011]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help create-iiop-listener` at the command line.

[[giowc]][[GSADG00479]][[to-list-iiop-listeners]]

To List IIOP Listeners
^^^^^^^^^^^^^^^^^^^^^^

Use the `list-iiop-listeners` subcommand in remote mode to list the
existing IIOP listeners.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  List the IIOP listeners by using the
link:../reference-manual/list-iiop-listeners.html#GSRFM00169[`list-iiop-listeners`] subcommand.

[[GSADG00264]][[gipcm]]


Example 15-2 Listing IIOP Listeners

This example lists all the IIOP listeners for the server instance.

[source,oac_no_warn]
----
asadmin> list-iiop-listeners
orb-listener-1
SSL
SSL_MUTUALAUTH
sample_iiop_listener
Command list-iiop-listeners executed successfully.
----

[[GSADG1012]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help list-iiop-listeners` at the command line.

[[giwlq]][[GSADG00480]][[to-update-an-iiop-listener]]

To Update an IIOP Listener
^^^^^^^^^^^^^^^^^^^^^^^^^^

1.  List the IIOP listeners by using the
link:../reference-manual/list-iiop-listeners.html#GSRFM00169[`list-iiop-listeners`] subcommand.
2.  Modify the values for the specified IIOP listener by using the
link:../reference-manual/set.html#GSRFM00226[`set`] subcommand. +
The listener is identified by its dotted name.

[[GSADG00265]][[giwlj]]


Example 15-3 Updating an IIOP Listener

This example changes SSL from enabled to disabled.

[source,oac_no_warn]
----
asadmin> set "server.iiop-service.iiop-listener.SSL.enabled"
server.iiop-service.iiop-listener.SSL.enabled=false
Command set executed successfully.
----

[[giowj]][[GSADG00481]][[to-delete-an-iiop-listener]]

To Delete an IIOP Listener
^^^^^^^^^^^^^^^^^^^^^^^^^^

Use the `delete-iiop-listener` subcommand in remote mode to delete an
IIOP listener.

1.  Ensure that the server is running. +
Remote subcommands require a running server.
2.  List the IIOP listeners by using the
link:../reference-manual/list-iiop-listeners.html#GSRFM00169[`list-iiop-listeners`] subcommand.
3.  Delete an IIOP listener by using the
link:../reference-manual/delete-iiop-listener.html#GSRFM00084[`delete-iiop-listener`] subcommand.
4.  To apply your changes, restart GlassFish Server. +
See link:domains.html#ginqj[To Restart a Domain].

[[GSADG00266]][[giped]]


Example 15-4 Deleting an IIOP Listener

This example deletes the IIOP listener named `sample_iiop_listener`.

[source,oac_no_warn]
----
asadmin> delete-iiop-listener sample_iiop_listener
 Command delete-iiop-listener executed successfully.
----

[[GSADG1013]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help delete-iiop-listener` at the command line.


