<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE server> <!-- ======================================================== --> <!-- Example JBoss Remoting Service Configuration file --> <!-- ======================================================== --> <server> <!-- NOTE: set this up to the path where your libraries are --> <classpath codebase="lib" archives="*"></classpath> <!-- For detailed description of all these configuration attributes, please see the --> <!-- JBoss Remoting User's Guide or wiki (http://www.jboss.org/wiki/Wiki.jsp?page=Remoting_configuration) --> <!-- The NetworkRegistry contains all the local and remote --> <!-- servers that it recognizes. The remote ones registered --> <!-- are dependant on the detectors running and which domains --> <!-- they are configured to identify. --> <mbean code="org.jboss.remoting.network.NetworkRegistry" name="jboss.remoting:service=NetworkRegistry"></mbean> <!-- ******************************************************************** --> <!-- CONNECTORS/INVOKERS --> <!-- The following section covers all the different transport types --> <!-- that can be configured for the Connector (socket, sslsocket, rmi --> <!-- http, and https). --> <!-- ******************************************************************** --> <!-- The Connector is the core component of the remoting server service. --> <!-- It binds the remoting invoker (transport protocol, callback configuration, --> <!-- data marshalling, etc.) with the invocation handlers. --> <!-- This particular Connector is for the standard socket protocol. --> <mbean code="org.jboss.remoting.transport.Connector" xmbean-dd="org/jboss/remoting/transport/Connector.xml" name="jboss.remoting:service=Connector,transport=Socket" display-name="Socket transport Connector"> <!-- Can either just specify the InvokerLocator attribute and not the invoker element in the --> <!-- Configuration attribute, or do the full invoker configuration in the in invoker element --> <!-- of the Configuration attribute. --> <!-- Remember that if you do use more than one param on the uri, will have to include as a CDATA, --> <!-- otherwise, parser will complain. --> <!-- <attribute name="InvokerLocator"><![CDATA[socket://${jboss.bind.address}:8084/?enableTcpNoDelay=false&clientMaxPoolSize=30\]\]\></attribute> --> <attribute name="Configuration"> <config> <!-- Other than transport type and handler, none of these configurations are required (will just use defaults). --> <invoker transport="socket"> <!-- The following are specific to socket invoker --> <attribute name="numAcceptThreads">1</attribute> <attribute name="maxPoolSize">303</attribute> <attribute name="clientMaxPoolSize" isParam="true">304</attribute> <attribute name="socketTimeout">60000</attribute> <!-- To set socketTimeout on client as well, add "isParam" --> <!--<attribute name="socketTimeout" isParam="true">60000</attribute>--> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">6666</attribute> <!-- <attribute name="clientConnectAddress" isParam="true">216.23.33.2</attribute> --> <!-- <attribute name="clientConnectPort" isParam="true">7777</attribute> --> <attribute name="enableTcpNoDelay" isParam="true">false</attribute> <attribute name="backlog">200</attribute> <!-- The following is for callback configuration and is independent of invoker type --> <attribute name="callbackMemCeiling">30</attribute> <!-- indicates callback store by fully qualified class name --> <attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute> <!-- indicates callback store by object name --> <!-- <attribute name="callbackStore">jboss.remoting:service=CallbackStore,type=Serializable</attribute> --> <!-- config params for callback store. if were declaring callback store via object name, --> <!-- could have specified these config params there. --> <!-- StoreFilePath indicates to which directory to write the callback objects. --> <!-- The default value is the property value of 'jboss.server.data.dir' and if this is not set, --> <!-- then will be 'data'. Will then append 'remoting' and the callback client's session id. --> <!-- An example would be 'data\remoting\5c4o05l-9jijyx-e5b6xyph-1-e5b6xyph-2'. --> <attribute name="StoreFilePath">callback</attribute> <!-- StoreFileSuffix indicates the file suffix to use for the callback objects written to disk. --> <!-- The default value is ser. --> <attribute name="StoreFileSuffix">cst</attribute> <!-- Sets the callback error handler to use when determining how to manage failed push callbacks --> <!-- When not specified, the default is org.jboss.remoting.callback.DefaultCallbackErrorHandler --> <!-- <attribute name="callbackErrorHandler">org.jboss.remoting.callback.DefaultCallbackErrorHandler</attribute> --> </invoker> <!-- At least one handler is required by the connector. If have more than one, must declare --> <!-- different subsystem values. Otherwise, all invocations will be routed to the only one --> <!-- that is declared. --> <handlers> <!-- specify handler by fully qualified classname --> <handler subsystem="mock">org.jboss.test.remoting.transport.mock.MockServerInvocationHandler</handler> <!-- can also specify handler by object name --> <!-- <handler subsystem="mock">test:type=handler</handler> --> </handlers> </config> </attribute> </mbean> <!-- This Connector is for the SSL based socket transport. --> <!-- It is basically the same as the regular socket configuration --> <!-- with the exception of the protocol name (sslsocket) and --> <!-- the serverSocketFactory attribute. Due to this, will --> <!-- shorten the extra attributes to highlight the specific --> <!-- differences between sslsocket and socket transports. --> <mbean code="org.jboss.remoting.transport.Connector" xmbean-dd="org/jboss/remoting/transport/Connector.xml" name="jboss.remoting:service=Connector,transport=SSLSocket" display-name="SSL Socket transport Connector"> <attribute name="Configuration"> <config> <!-- Other than transport type and handler, none of these configurations are required (will just use defaults). --> <!-- This includes the serverSocketFactory, but are including it here to show how to reference the --> <!-- SSL server socket factory implementation provided with JBossRemoting. --> <invoker transport="sslsocket"> <!-- The following is for setting the server socket factory. If want ssl support --> <!-- use a server socket factory that supports ssl. The only requirement is that --> <!-- the server socket factory value must be an ObjectName, meaning the --> <!-- server socket factory implementation must be a MBean and also --> <!-- MUST implement the org.jboss.remoting.security.ServerSocketFactoryMBean interface. --> <attribute name="serverSocketFactory">jboss.remoting:service=ServerSocketFactory,type=SSL</attribute> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">6667</attribute> </invoker> <handlers> <handler subsystem="mock">org.jboss.test.remoting.transport.mock.MockServerInvocationHandler</handler> </handlers> </config> </attribute> <!-- This depends is included because need to make sure this mbean is running before configure invoker. --> <depends>jboss.remoting:service=ServerSocketFactory,type=SSL</depends> </mbean> <!-- This Connector is for the http based transport. --> <!-- This invoker will basically run as a standalone http server --> <mbean code="org.jboss.remoting.transport.Connector" xmbean-dd="org/jboss/remoting/transport/Connector.xml" name="jboss.remoting:service=Connector,transport=HTTP" display-name="HTTP transport Connector"> <!-- Since there are no special configuration properties for this invoker, will just use the following --> <!-- to declare the invoker and not within the 'invoker' element within the 'Configuration' attribute below. --> <!-- IMPORTANT to note can only be either 'InvokerLocator' attribute OR 'invoker' element, not both. --> <attribute name="InvokerLocator">http://${jboss.bind.address}:6668</attribute> <attribute name="Configuration"> <config> <handlers> <handler subsystem="mock">org.jboss.test.remoting.transport.mock.MockServerInvocationHandler</handler> </handlers> </config> </attribute> </mbean> <!-- This Connector is for the https based transport. --> <!-- This invoker will basically run as a standalone https server --> <mbean code="org.jboss.remoting.transport.Connector" xmbean-dd="org/jboss/remoting/transport/Connector.xml" name="jboss.remoting:service=Connector,transport=HTTPS" display-name="HTTPS transport Connector"> <attribute name="Configuration"> <config> <invoker transport="https"> <!-- When doing https, this attribute MUST be set and MUST always be the same value. --> <attribute name="SSLImplementation">org.jboss.remoting.transport.coyote.ssl.RemotingSSLImplementation</attribute> <!-- The following is for setting the server socket factory. If want ssl support --> <!-- use a server socket factory that supports ssl. The only requirement is that --> <!-- the server socket factory value must be an ObjectName, meaning the --> <!-- server socket factory implementation must be a MBean and also --> <!-- MUST implement the org.jboss.remoting.security.ServerSocketFactoryMBean interface. --> <attribute name="serverSocketFactory">jboss.remoting:service=ServerSocketFactory,type=SSL</attribute> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">6669</attribute> </invoker> <handlers> <handler subsystem="mock">org.jboss.test.remoting.transport.mock.MockServerInvocationHandler</handler> </handlers> </config> </attribute> <!-- This depends is included because need to make sure this mbean is running before configure invoker. --> <depends>jboss.remoting:service=ServerSocketFactory,type=SSL</depends> </mbean> <!-- This Connector is for the rmi based transport. --> <mbean code="org.jboss.remoting.transport.Connector" xmbean-dd="org/jboss/remoting/transport/Connector.xml" name="jboss.remoting:service=Connector,transport=RMI" display-name="RMI transport Connector"> <attribute name="Configuration"> <config> <invoker transport="rmi"> <!-- The port on which to create the RMI registry. --> <!-- The default is 3455. --> <attribute name="registryPort" isParam="true">7000</attribute> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">6670</attribute> </invoker> <handlers> <handler subsystem="mock">org.jboss.test.remoting.transport.mock.MockServerInvocationHandler</handler> </handlers> </config> </attribute> </mbean> <!-- This Connector is for the multiplex based transport. The multiplex client and server invokers --> <!-- inherit much of their functionality from the socket invokers and use a subset of their parameters. --> <mbean code="org.jboss.remoting.transport.Connector" xmbean-dd="org/jboss/remoting/transport/Connector.xml" name="jboss.remoting:service=Connector,transport=Multiplex" display-name="Multiplex transport Connector"> <attribute name="Configuration"> <config> <!-- Other than transport type and handler, none of these configurations are required (will just use defaults). --> <invoker transport="multiplex"> <!-- The following are specific to socket/multiplex invoker --> <attribute name="numAcceptThreads">1</attribute> <attribute name="maxPoolSize">303</attribute> <attribute name="clientMaxPoolSize" isParam="true">304</attribute> <attribute name="socketTimeout">60000</attribute> <!-- To set socketTimeout on client as well, add "isParam" --> <!--<attribute name="socketTimeout" isParam="true">60000</attribute>--> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">6666</attribute> <!-- <attribute name="clientConnectAddress" isParam="true">216.23.33.2</attribute> --> <!-- <attribute name="clientConnectPort" isParam="true">7777</attribute> --> <!-- The following two parameters, enableTcpNoDelay and backlog, are not currently used. --> <!-- <attribute name="enableTcpNoDelay" isParam="true">false</attribute>--> <!-- <attribute name="backlog">200</attribute>--> <!-- The following is for callback configuration and is independent of invoker type --> <attribute name="callbackMemCeiling">30</attribute> <!-- indicates callback store by fully qualified class name --> <attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute> <!-- indicates callback store by object name --> <!-- <attribute name="callbackStore">jboss.remoting:service=CallbackStore,type=Serializable</attribute> --> <!-- config params for callback store. if were declaring callback store via object name, --> <!-- could have specified these config params there. --> <!-- StoreFilePath indicates to which directory to write the callback objects. --> <!-- The default value is the property value of 'jboss.server.data.dir' and if this is not set, --> <!-- then will be 'data'. Will then append 'remoting' and the callback client's session id. --> <!-- An example would be 'data\remoting\5c4o05l-9jijyx-e5b6xyph-1-e5b6xyph-2'. --> <attribute name="StoreFilePath">callback</attribute> <!-- StoreFileSuffix indicates the file suffix to use for the callback objects written to disk. --> <!-- The default value is ser. --> <attribute name="StoreFileSuffix">cst</attribute> <!-- Sets the callback error handler to use when determining how to manage failed push callbacks --> <!-- When not specified, the default is org.jboss.remoting.callback.DefaultCallbackErrorHandler --> <!-- <attribute name="callbackErrorHandler">org.jboss.remoting.callback.DefaultCallbackErrorHandler</attribute> --> </invoker> <!-- At least one handler is required by the connector. If have more than one, must declare --> <!-- different subsystem values. Otherwise, all invocations will be routed to the only one --> <!-- that is declared. --> <handlers> <!-- specify handler by fully qualified classname --> <handler subsystem="mock">org.jboss.test.remoting.transport.mock.MockServerInvocationHandler</handler> <!-- can also specify handler by object name --> <!-- <handler subsystem="mock">test:type=handler</handler> --> </handlers> </config> </attribute> </mbean> <!-- ******************************************************************** --> <!-- DETECTORS --> <!-- Zero or more detectors are allowed. --> <!-- Currently only have implementation for multicast and jndi --> <!-- ******************************************************************** --> <!-- The multicast detector uses multicase to broadcast detection messages --> <mbean code="org.jboss.remoting.detection.multicast.MulticastDetector" name="jboss.remoting:service=Detector,transport=multicast"> <!-- The address to bind to for the network interface. --> <!-- <attribute name="BindAddress">${jboss.bind.address}</attribute> --> <!-- The IP that is used to broadcast detection messages on via multicast. --> <!-- To be more specific, will be the ip of the multicast group the detector will join. --> <!-- This attribute is ignored if the Address has already been set when started. --> <!-- Default is 224.1.9.1. --> <attribute name="DefaultIP">224.1.9.2</attribute> <!-- Multicast group port that the detector will join on. Default is 2410 --> <attribute name="Port">2411</attribute> <!-- The IP of the multicast group that the detector will join. --> <!-- The default will be that of the DefaultIP if not explicitly set. --> <attribute name="Address">224.1.9.3</attribute> <attribute name="DefaultTimeDelay">10000</attribute> <attribute name="HeartbeatTimeDelay">5000</attribute> </mbean> <mbean code="org.jboss.remoting.detection.jndi.JNDIDetector" name="jboss.remoting:service=Detector,transport=jndi"> <!-- host to which the detector will connect to for the JNDI server. --> <attribute name="Host">localhost</attribute> <!-- port to which detector will connect to for the JNDI server. --> <attribute name="Port">5555</attribute> <!-- context factory string used when connecting to the JNDI server. --> <!-- The default is org.jnp.interfaces.NamingContextFactory. --> <!-- <attribute name="ContextFactory">org.acme.NamingContextFactory</attribute> --> <!-- url package string to use when connecting to the JNDI server. --> <!-- The default is org.jboss.naming:org.jnp.interfaces. --> <!-- <attribute name="URLPackage">org.acme.naming</attribute> --> <!-- Sets the number of detection iterations before manually pinging --> <!-- remote server to make sure still alive. This is needed since remote server --> <!-- could crash and yet still have an entry in the JNDI server, --> <!-- thus making it appear that it is still there. The default value is 5. --> <attribute name="CleanDetectionNumber">20</attribute> <!-- Specifies the domains in which the detector will recognize --> <!-- detections. If servers are not configured to be in these --> <!-- domains, they will not be added to NetworkRegistry. --> <attribute name="Configuration"> <domains> <domain>roxanne</domain> <domain>sparky</domain> </domains> </attribute> </mbean> <!-- Persitent store for remoting callbacks (pull model). --> <mbean code="org.jboss.remoting.callback.CallbackStore" name="jboss.remoting:service=CallbackStore,type=Serializable" display-name="Persisted Callback Store"> <!-- the directory to store the persisted callbacks into --> <attribute name="StoreFilePath">callback_store</attribute> <!-- the file suffix to use for each callback persisted to disk --> <attribute name="StoreFileSuffix">cbk</attribute> </mbean> <!-- This section is for custom (SSL) server socket factory --> <!-- This service is used to build the SSL Server socket factory --> <!-- This will be where all the store/trust information will be set. --> <!-- If do not need to make any custom configurations, no extra attributes --> <!-- need to be set for the SSLSocketBuilder and just need to set the --> <!-- javax.net.ssl.keyStore and javax.net.ssl.keyStorePassword system properties. --> <!-- This can be done by just adding something like the following to the run script for JBoss --> <!-- (this one is for run.bat): --> <!-- set JAVA_OPTS=-Djavax.net.ssl.keyStore=.keystore -Djavax.net.ssl.keyStorePassword=opensource %JAVA_OPTS% --> <!-- Otherwise, if want to customize the attributes for SSLSocketBuilder, will need to uncomment them below. --> <mbean code="org.jboss.remoting.security.SSLSocketBuilder" name="jboss.remoting:service=SocketBuilder,type=SSL" display-name="SSL Server Socket Factory Builder"> <!-- IMPORTANT - If making ANY customizations, this MUST be set to false. --> <!-- Otherwise, will used default settings and the following attributes will be ignored. --> <attribute name="UseSSLServerSocketFactory">false</attribute> <!-- This is the url string to the key store to use --> <attribute name="KeyStoreURL">.keystore</attribute> <!-- The password for the key store --> <attribute name="KeyStorePassword">opensource</attribute> <!-- The password for the keys (will use KeystorePassword if this is not set explicitly. --> <attribute name="KeyPassword">opensource</attribute> <!-- The protocol for the SSLContext. Default is TLS. --> <attribute name="SecureSocketProtocol">TLS</attribute> <!-- The algorithm for the key manager factory. Default is SunX509. --> <attribute name="KeyManagementAlgorithm">SunX509</attribute> <!-- The type to be used for the key store. --> <!-- Defaults to JKS. Some acceptable values are JKS (Java Keystore - Sun's keystore format), --> <!-- JCEKS (Java Cryptography Extension keystore - More secure version of JKS), and --> <!-- PKCS12 (Public-Key Cryptography Standards #12 keystore - RSA's Personal Information Exchange Syntax Standard). --> <!-- These are not case sensitive. --> <attribute name="KeyStoreType">JKS</attribute> </mbean> <!-- The server socket factory mbean to be used as attribute to socket invoker --> <!-- See serverSocketFactory attribute above for where it is used --> <!-- This service provides the exact same API as the ServerSocketFactory, so --> <!-- can be set as an attribute of that type on any MBean requiring an ServerSocketFactory. --> <mbean code="org.jboss.remoting.security.SSLServerSocketFactoryService" name="jboss.remoting:service=ServerSocketFactory,type=SSL" display-name="SSL Server Socket Factory"> <depends optional-attribute-name="SSLSocketBuilder" proxy-type="attribute">jboss.remoting:service=SocketBuilder,type=SSL</depends> </mbean> </server>
Comments