Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

openejb start - OpenEJB Remote Server

SYNOPSIS

openejb start options #options

NOTE

The OpenEJB Remote Server must be executed from the OPENEJB_HOME directory. This is the directory where OpenEJB was installed or unpacked. For the remainder of this document we will assume can be started by running the openejb.bat script for windows and the openejb script for Linux and other Unix based OSes. Before running these scripts you need to set the environment variable OPENEJB_HOME to the path of the directory where you unpacked the OpenEJB installation.

From now on we will refer to this directory as <OPENEJB_HOME> and assume that you unpacked OpenEJB into the directory C:\openejb-3.0 The startup scripts are present in the <OPENEJB_HOME>/bin directory. You can set this directory in the system PATH for starting openejb from the command shell.

In Windows, the remote server can be executed as follows:

C:\openejb-3.0> bin\openejb> openejb start -help

In UNIX, Linux, or Mac OS X, the deploy tool can be executed as follows:

[user@host openejb-3.0]# ./bin/openejb .sh start -help

Depending on your OpenEJB version, you may need to change execution bits to make the scripts executable. You can do this with the following command.

[user@host openejb-3.0]# chmod 755 openejb.sh bin/*.shopenejb

From here on out, it will be assumed that you know how to execute the right openejb script for your operating system and commands will appear in shorthand as show below.

...

OpenEJB itself is configured with the OpenEJB configuration file, which is extremely simple and self-documenting. This file is located at c:\openejb-3.0\conf\openejb.xml.

OPTIONS

-h host

Binds the Remote Server to the specified host address. Default host address is 127.0.0.1.

-p port

Binds the Remote Server to the specified port. Default port is 4201.

-t int

Sets the number of concurrent threads the Remote server should use to service requests from clients. Default number of threads is 20.

-d dir

Sets the OPENEJB_HOME to the specified directory.

-l file

Sets the log4j configuration to the specified file.

-conf file

Sets the OpenEJB configuration to the specified file.

-version

Print the version.

D<name>=<value>

Specifies a system property passed into OpenEJB at startup.

--admin-bind <host>

Sets the host to which the admin service should be bound.

--admin-port <int>

Sets the port to which the admin service should be bound.

--conf <file>

Sets the OpenEJB configuration to the specified file.

--ejbd-bind <host>

Sets the host to which the ejbd service should be bound.

--ejbd-port <int>

Sets the port to which the ejbd service should be bound.

--examples

Show examples of how to use the options.

-h, ---help

Print this help message.

--hsql-bind <host>

Sets the host to which the hsql service should be bound.

--hsql-port <int>

Sets the port to which the hsql service should be bound.

--httpejbd-bind <host>

Sets the host to which the httpejbd service should be bound

-examples

Show examples of how to use the options.

--adminhttpejbd-ipport <int>

Sets the port to which the httpejbd service should be boundA comma delimited list of hosts and IP addresses that are allowed to administer this server.

--local-copy boolean <boolean>

Instructs the container system whether or not to marshal (ie, copy) the parameters and return values on all calls between beans. Default is true.

--telnet-bind <host>

Sets the host to which the telnet service should be bound.

--telnet-port <int>

Sets the port to which the telnet service should be bound.

-v, --version

Print the version.

EXAMPLES

Example: Simplest scenario

openejb start

That's it. The server ejbd will start up and bind to IP 127.0.0.1 and port 4201.

...

Code Block
java.naming.factory.initial      = org.apache.openejb.client.RemoteInitialContextFactory
   java.naming.provider.url         = ejbd://127.0.0.1:4201
   java.naming.security.principal   = myuser
   java.naming.security.credentials = mypass

Using -h

Example: --conf=file

openejb start --conf=C:\openejb-3.0\conf\mytest.conf

Sets the openejb.configuration system variable to the file C:\openejb\conf\mytest.conf. When the server starts up and initializes OpenEJB, this configuration will be used to assemble the container system and load beans.

Example: --local-copy

The local-copy option controls whether Remote interface arguments and results are always copied.

openejb start --local-copy=true (default)

Remote interface business method arguments and results are always copied (via serialization), which is compliant with the EJB standard.

openejb start --local-copy=false

Remote interface business method arguments and results are copied only when the client is in a different JVM. Otherwise, they are passed by reference - as if it were a Local interface. This is faster, of course, but non-compliant with the EJB standard.

Local interfaces are not affected; their arguments and results are passed by reference and never copied.

CONFIG OVERRIDE EXAMPLES

Example: -D<service>.bind=<address>

openejb start -Dejbd.bind=openejb start -h 10.45.67.8

This is the most common way to use the OpenEJB Remote EJBd Server Service. The server service will start up and bind to IP 10.45.67.8 and port 4201. The following properties would then be used to get an InitialContext from the Remote EJBd Server Service.

Code Block
   java.naming.factory.initial      = org.apache.openejb.client.RemoteInitialContextFactory
   java.naming.provider.url         = ejbd://10.45.67.8:4201
   java.naming.security.principal   = myuser
   java.naming.security.credentials = mypass

DNS names can also be used.

openejb start -h Dejbd.bind=myhost.foo.com

The following properties would then be used to get an InitialContext from the Remote Server.

Code Block
   java.naming.factory.initial      = org.apache.openejb.client.RemoteInitialContextFactory
   java.naming.provider.url         = ejbd://myhost.foo.com:4201
   java.naming.security.principal   = myuser
   java.naming.security.credentials = mypass

...

openejb start -Dtelnet.bind=myhost.foo.com

The following properties would then be used to log into the server via a telnet client as such:

telnet myhost.foo.com 4202

Example: -D<service>.port=<port>

openejb start -p Dejbd.port=8765

The server will start up and bind to IP 127.0.0.1 and port 8765.

The following properties would then be used to get an InitialContext from the Remote Server.

Code Block
   java.naming.factory.initial      = org.apache.openejb.client.RemoteInitialContextFactory
   java.naming.provider.url         = ejbd://127.0.0.1:8765
   java.naming.security.principal   = myuser
   java.naming.security.credentials = mypass

...

openejb start -conf C:\openejb\conf\mytest.conf

Sets the openejb.configuration system variable to the file C:\openejb\conf\mytest.conf. When the server starts up and the initializes OpenEJB, this configuration will be used to assemble the container system and load beans.

Using --admin-ip addresses

Dhttpejbd.port=8888

The server will start up and the EJB over HTTP service will bind to IP 127.0.0.1 and port 8888.

The following properties would then be used to get an InitialContext from the HTTP/Remote Server.

Code Block

   java.naming.factory.initial      = org.apache.openejb.client.RemoteInitialContextFactory
   java.naming.provider.url         = http://127.0.0.1:8888/openejb
   java.naming.security.principal   = myuser
   java.naming.security.credentials = mypass

Example: -D<service>.only_from=<addresses>

openejb start -Dadmin.only_from=openejb start --admin-ip 192.168.1.12

Adds 192.168.1.12 to the list of IP addresses that are authorized to shutdown the server or access the server
via a telnet client. The host that this server was started on is always allowed to administer the server.

Multiple hosts can be given administrative access to this server by listing all the host names separated
by commas as such:

openejb start --admin-ip Dadmin.only_from=192.168.1.12,joe.foo.com,robert

The first host in the string names the host explicitly using an IP address (192.168.1.12).

The second host in uses a DNS name (joe.foo.com) to refer to the hosts IP address. The DNS name will be resolved and the IP will be added to the admin list.

The third address refers to a the host by a name (robert)that the opperating system is able to resolve into a valid IP address. This is usually done via a hosts file, interal DNS server, or Windows Domain Server.

...

Example: -D<service>.threads=<max>

openejb start --local-copy=true

Instructs the container system to marshall (ie, copy) all calls between beans are required by the EJB 1.1 specification. This is the default.

openejb start --local-copy=false

...

Dejbd.threads=200

Sets the max number of concurrent threads that can enter the EJBd Server Service to 200.

Example: -D<service>.disabled=<true/false>

openejb start -Dtelnet.disabled=true

Prevents the Telnet Server Service from starting when the OpenEJB Server starts.

CONSOLE OUTPUT

Once you start OpenEJB using the openejb start command the following output will be seen on the console

Code Block

Apache OpenEJB 3.0    build: 20070825-01:10
http://openejb.apache.org/
OpenEJB ready.
[OPENEJB:init] OpenEJB Remote Server
  ** Starting Services **
  NAME                 IP              PORT
  httpejbd             0.0.0.0         4204
  telnet               0.0.0.0         4202
  ejbd                 0.0.0.0         4201
  hsql                 0.0.0.0         9001
  admin thread         0.0.0.0         4200
-------
Ready!