org.jpos.q2.iso
Class QMUX

java.lang.Object
  extended by org.jpos.q2.QBeanSupport
      extended by org.jpos.q2.iso.QMUX
All Implemented Interfaces:
Configurable, ISOSource, MUX, QMUXMBean, QBean, QBeanSupportMBean, QPersist, SpaceListener, Loggeable

public class QMUX
extends QBeanSupport
implements SpaceListener, MUX, QMUXMBean, Loggeable


Nested Class Summary
static class QMUX.AsyncRequest
           
 
Field Summary
protected  java.lang.String ignorerc
           
protected  java.lang.String in
           
protected  java.lang.String[] key
           
protected  java.lang.String[] mtiMapping
           
protected  java.lang.String out
           
protected  java.lang.String[] ready
           
protected  LocalSpace sp
           
protected  java.lang.String unhandled
           
 
Fields inherited from class org.jpos.q2.QBeanSupport
cfg, log, scheduledThreadPoolExecutor
 
Fields inherited from interface org.jpos.q2.QBean
DESTROYED, FAILED, STARTED, STARTING, stateString, STOPPED, STOPPING
 
Constructor Summary
QMUX()
           
 
Method Summary
 void addISORequestListener(ISORequestListener l)
           
 void destroyService()
           
 void dump(java.io.PrintStream p, java.lang.String indent)
           
 java.lang.String getCountersAsString()
           
 long getIdleTimeInMillis()
           
 java.lang.String getInQueue()
           
 java.lang.String getKey(ISOMsg m)
           
 long getLastTxnTimestampInMillis()
           
static MUX getMUX(java.lang.String name)
           
 java.lang.String getOutQueue()
           
 java.lang.String[] getReadyIndicatorNames()
           
 int getRXCounter()
           
 Space getSpace()
           
 int getTXCounter()
           
 java.lang.String getUnhandledQueue()
           
 void initService()
           
 boolean isConnected()
           
 void notify(java.lang.Object k, java.lang.Object value)
          Called by Space implementation whenever an object with the given key is being placed in the Space.
protected  void processUnhandled(ISOMsg m)
           
 boolean removeISORequestListener(ISORequestListener l)
           
 ISOMsg request(ISOMsg m, long timeout)
          Sends a message to remote host and wait for response
 void request(ISOMsg m, long timeout, ISOResponseListener rl, java.lang.Object handBack)
          Sends a message to remote host in async way
 void resetCounters()
           
 void send(ISOMsg m)
          sends (or hands back) an ISOMsg
 void setInQueue(java.lang.String in)
           
 void setOutQueue(java.lang.String out)
           
 void setUnhandledQueue(java.lang.String unhandled)
           
 void startService()
           
 void stopService()
           
 
Methods inherited from class org.jpos.q2.QBeanSupport
addAttr, createElement, destroy, getAttrs, getAttrs, getConfiguration, getFactory, getLoader, getLoaderURLS, getLog, getLogger, getName, getPersist, getProperties, getProperty, getRealm, getScheduledThreadPoolExecutor, getServer, getState, getStateAsString, init, isModified, running, setAttr, setConfiguration, setLogger, setModified, setName, setPersist, setProperty, setRealm, setServer, setState, shutdownQ2, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jpos.q2.QBeanSupportMBean
getLoader, getLoaderURLS, getLogger, getName, getRealm, getServer, setLogger, setName, setPersist, setRealm, setServer, shutdownQ2
 
Methods inherited from interface org.jpos.q2.QBean
destroy, getState, getStateAsString, init, start, stop
 
Methods inherited from interface org.jpos.q2.QPersist
getPersist, isModified
 

Field Detail

sp

protected LocalSpace sp

in

protected java.lang.String in

out

protected java.lang.String out

unhandled

protected java.lang.String unhandled

ready

protected java.lang.String[] ready

key

protected java.lang.String[] key

ignorerc

protected java.lang.String ignorerc

mtiMapping

protected java.lang.String[] mtiMapping
Constructor Detail

QMUX

public QMUX()
Method Detail

initService

public void initService()
                 throws ConfigurationException
Overrides:
initService in class QBeanSupport
Throws:
ConfigurationException

startService

public void startService()
Overrides:
startService in class QBeanSupport

stopService

public void stopService()
Overrides:
stopService in class QBeanSupport

destroyService

public void destroyService()
Overrides:
destroyService in class QBeanSupport

getMUX

public static MUX getMUX(java.lang.String name)
                  throws NameRegistrar.NotFoundException
Returns:
MUX with name using NameRegistrar
Throws:
NameRegistrar.NotFoundException
See Also:
NameRegistrar

request

public ISOMsg request(ISOMsg m,
                      long timeout)
               throws ISOException
Description copied from interface: MUX
Sends a message to remote host and wait for response

Specified by:
request in interface MUX
Parameters:
m - message to send
timeout - amount of time in millis to wait for a response
Returns:
response or null
Throws:
ISOException

notify

public void notify(java.lang.Object k,
                   java.lang.Object value)
Description copied from interface: SpaceListener

Called by Space implementation whenever an object with the given key is being placed in the Space.

Specified by:
notify in interface SpaceListener
Parameters:
k - Object's key
value - Object's value

getKey

public java.lang.String getKey(ISOMsg m)
                        throws ISOException
Throws:
ISOException

setInQueue

public void setInQueue(java.lang.String in)
Specified by:
setInQueue in interface QMUXMBean

getInQueue

public java.lang.String getInQueue()
Specified by:
getInQueue in interface QMUXMBean

setOutQueue

public void setOutQueue(java.lang.String out)
Specified by:
setOutQueue in interface QMUXMBean

getOutQueue

public java.lang.String getOutQueue()
Specified by:
getOutQueue in interface QMUXMBean

getSpace

public Space getSpace()

setUnhandledQueue

public void setUnhandledQueue(java.lang.String unhandled)
Specified by:
setUnhandledQueue in interface QMUXMBean

getUnhandledQueue

public java.lang.String getUnhandledQueue()
Specified by:
getUnhandledQueue in interface QMUXMBean

request

public void request(ISOMsg m,
                    long timeout,
                    ISOResponseListener rl,
                    java.lang.Object handBack)
             throws ISOException
Description copied from interface: MUX
Sends a message to remote host in async way

Specified by:
request in interface MUX
Parameters:
m - message to send
timeout - time to wait for the response
rl - reference to response listener
handBack - optional handback to be given to reponse listener
Throws:
ISOException

getReadyIndicatorNames

public java.lang.String[] getReadyIndicatorNames()

addISORequestListener

public void addISORequestListener(ISORequestListener l)

removeISORequestListener

public boolean removeISORequestListener(ISORequestListener l)

resetCounters

public void resetCounters()
Specified by:
resetCounters in interface QMUXMBean

getCountersAsString

public java.lang.String getCountersAsString()
Specified by:
getCountersAsString in interface QMUXMBean

getTXCounter

public int getTXCounter()
Specified by:
getTXCounter in interface QMUXMBean

getRXCounter

public int getRXCounter()
Specified by:
getRXCounter in interface QMUXMBean

getLastTxnTimestampInMillis

public long getLastTxnTimestampInMillis()
Specified by:
getLastTxnTimestampInMillis in interface QMUXMBean

getIdleTimeInMillis

public long getIdleTimeInMillis()
Specified by:
getIdleTimeInMillis in interface QMUXMBean

processUnhandled

protected void processUnhandled(ISOMsg m)

send

public void send(ISOMsg m)
          throws java.io.IOException,
                 ISOException
sends (or hands back) an ISOMsg

Specified by:
send in interface ISOSource
Parameters:
m - the Message to be sent
Throws:
java.io.IOException
ISOException
org.jpos.iso.ISOFilter.VetoException;

isConnected

public boolean isConnected()
Specified by:
isConnected in interface ISOSource
Returns:
true if source is connected and usable

dump

public void dump(java.io.PrintStream p,
                 java.lang.String indent)
Specified by:
dump in interface Loggeable