Chapter 9 EAServer EJB Interoperability
EAServer complies with the interoperability requirements in the EJB 2.0 specification, allowing you to interoperate with EJB 2.0 compliant servers from other vendors. There are two approaches to inter-vendor interoperability:
EAServer supports RMI/IIOP interoperability for EJB clients and components, without using CORBA 2.3 Valuetypes in the IDL interface definitions. The generated stub and skeleton code can marshall parameters in accord with the RMI/IIOP requirements, even though the IDL does not use Valuetypes. Since the IDL does not use Valuetypes, EAServer EJB components remain compatible with components of other types and with CORBA 2.2 clients.
EAServer can simultaneously support RMI/IIOP and CORBA 2.2 clients. The client's interoperability requirements are automatically detected at run time. To use RMI/IIOP from another vendor's EJB 2.0 container, you must use the EAServer classes described in "Classes for RMI/IIOP connections from third-party containers".
You can use interoperable naming URLs for EJB 2.0 components and clients. Using an interoperable naming URL causes the EAServer runtime to use the RMI/IIOP protocol, which is required for EJB 2.0 interoperability features such as caller credential propagation. For more information on interoperable naming services, see the "Naming Services" chapter in the EAServer System Administration Guide.
To use RMI/IIOP as the network protocol, an EJB client
must specify a corbaname
interoperable
naming URL as the value of the JNDI context's PROVIDER_URL
property. When using corbaname
URLs,
you must specify the user name and password using the JAAS API,
as described in the EAServer Security Administration and
Programming Guide.
When using the EAServer EJB client runtime, the URL syntax is:
corbaname:iiop:ver@host:port/NameService[rmi]
Or to use the default IIOP version number:
corbaname:iiop:host:port/NameService[rmi]
Where:
ver | Is an optional version number. Supported
versions are 1.1 and 1.2. The default version is 1.1, unless you
append the #rmi:/
suffix,
which forces the IIOP version to 1.2.
|
host | Is the server host name. |
port | Is the server's IIOP port number. |
[rmi] | Is the optional naming prefix #rmi:/
,
which specifies RMI Valuetype semantics. Valuetype semantics are required
to propagate null parameter values in method calls.
Using this option forces the IIOP version to 1.2. |
For example, this URL specifies a connection to the host moxy at port 9000, using IIOP 1.2 with Valuetype semantics:
corbaname:iiop:1.2@moxy:9000/NameService#rmi:/
As another example, this URL specifies a connection to the host moxy at port 9000, using IIOP 1.2 without Valuetype semantics:
corbaname:iiop:1.2@moxy:9000/NameService
This URL identifies a connection to the host moxy at port 9000, using IIOP 1.1:
corbaname:iiop:moxy:9000/NameService
The string /NameService
is
optional in all corbaname
URLs.
For example:
corbaname:iiop:1.2@moxy:9000#rmi:/
Or:
corbaname:iiop:1.2@moxy:9000
Servlets, JSPs, application clients, and EJB 2.0 components
can use EJB references to alias names used to resolve EJB home interfaces
in the implementation code. To use RMI/IIOP for invocations
of the called component, you must specify a corbaname
URL
in the Link Value setting for the EJB reference.
To specify a name server address and IIOP version number, use a URL of the form:
corbaname:iiop:ver@host:port/NameService#[rmi]comp-name
To specify a name server address and use the default IIOP version of 1.1:
corbaname:iiop:host:port/NameService#comp-name
To specify a component that is installed in the same server or cluster:
corbaname:rir:/NameService#[rmi]comp-name
Where:
ver | Is an optional version number. The default version is 1.1. Supported versions are 1.1 and 1.2. |
host | Is the server host name. |
port | Is the server's IIOP port number. |
[rmi] | Is the optional naming prefix rmi:/
,
which specifies RMI Valuetype semantics. Valuetype semantics are required
to propagate null parameter values in method calls. This option
requires IIOP 1.2.
When connecting to another vendor's name service, the service may require a different naming prefix to specify RMI Valuetype semantics. |
comp-name | Is the name with which the component
is bound to the name service. For EAServer components, this is the
value of the com.sybase.jaguar.component.bind.naming
property,
which defaults to package-name/component-name if
not set.
|
For example, this URL references a component named Finance/Accounting, using the local name service and IIOP 1.2 with Valuetype semantics:
corbaname:rir:/NameService#rmi:/Finance/Accounting
This URL references the same component name, running on moxy at port 9000, using IIOP 1.2 and RMI Valuetype semantics:
corbaname:iiop:1.2@moxy:9000/NameService#rmi:/Finance/Accounting
The string /NameService
is
optional in all corbaname
URLs.
For example:
corbaname:rir:#rmi:/Finance/Accounting
To connect to EAServer using another vendor's EJB 2.0 client, application client, EJB, or servlet or JSP within a Web container, add easportable.jar to the CLASSPATH. easportable.jar is located in the EAServer java\lib subdirectory and contains the classes in the com.sybase.ejb.portable package. These classes are:
javax.ejb.EJBHome
or javax.ejb.EJBObject
instance
residing on EAServer:
Copyright © 2002 Sybase, Inc. All rights reserved. |
![]() |