com.softwareag.jca
Class PMQMessageStreamDispatcher

java.lang.Object
  extended by com.softwareag.sagd.PMQServer.PMQInterfaceDispatcher
      extended by com.softwareag.jca.PMQMessageStreamDispatcher
All Implemented Interfaces:
javax.transaction.xa.XAResource

public class PMQMessageStreamDispatcher
extends PMQInterfaceDispatcher
implements javax.transaction.xa.XAResource

Implements message dispatcher for PMQMessageServer and supports the XA protocol. The message driven bean can open a distributed transaction and the dispatched message can be commited or rollbacked inside the transaction.

Version:
$Revision: 1.1 $

Field Summary
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
protected PMQMessageStreamDispatcher(javax.resource.spi.endpoint.MessageEndpointFactory endpointFactory)
          Create dispatcher for meassage driven bean.
 
Method Summary
 void commit(javax.transaction.xa.Xid arg0, boolean arg1)
          XA callback.
 boolean doDispatch(java.io.InputStream input, java.io.OutputStream output)
          Callback from PMQMessageServer.
 void doLog(boolean flag, java.lang.String message)
          Implements local logging.
 void end(javax.transaction.xa.Xid arg0, int arg1)
          XA callback.
 void forget(javax.transaction.xa.Xid arg0)
          XA callback.
 int getTransactionTimeout()
          XA callback.
 boolean isSameRM(javax.transaction.xa.XAResource arg0)
          XA callback.
 int prepare(javax.transaction.xa.Xid arg0)
          XA callback.
 javax.transaction.xa.Xid[] recover(int arg0)
          XA callback.
 void rollback(javax.transaction.xa.Xid arg0)
          XA callback.
 boolean setTransactionTimeout(int arg0)
          XA callback.
 void start(javax.transaction.xa.Xid arg0, int arg1)
          XA callback.
 
Methods inherited from class com.softwareag.sagd.PMQServer.PMQInterfaceDispatcher
doDispatch, doInit, doInit, doLog, doRelease, getLifetime, getPersistentStatusFlagChanged, getStatusPersistence, isSingleMessageDispatcher, isStreamSendResponseDispatcher, setLifetime, setSingleMessageDispatcher, setStatusPersistence, setStreamSendResponseDispatcher
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PMQMessageStreamDispatcher

protected PMQMessageStreamDispatcher(javax.resource.spi.endpoint.MessageEndpointFactory endpointFactory)
Create dispatcher for meassage driven bean.

Parameters:
endpointFactory - message receiver
Method Detail

doDispatch

public boolean doDispatch(java.io.InputStream input,
                          java.io.OutputStream output)
Callback from PMQMessageServer.

Overrides:
doDispatch in class PMQInterfaceDispatcher
Parameters:
input - stream
output - response stream
Returns:
true to commit the message. false does a backout and stops the server.

getTransactionTimeout

public int getTransactionTimeout()
                          throws javax.transaction.xa.XAException
XA callback.

Specified by:
getTransactionTimeout in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

setTransactionTimeout

public boolean setTransactionTimeout(int arg0)
                              throws javax.transaction.xa.XAException
XA callback.

Specified by:
setTransactionTimeout in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

isSameRM

public boolean isSameRM(javax.transaction.xa.XAResource arg0)
                 throws javax.transaction.xa.XAException
XA callback.

Specified by:
isSameRM in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

recover

public javax.transaction.xa.Xid[] recover(int arg0)
                                   throws javax.transaction.xa.XAException
XA callback.

Specified by:
recover in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

prepare

public int prepare(javax.transaction.xa.Xid arg0)
            throws javax.transaction.xa.XAException
XA callback.

Specified by:
prepare in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

forget

public void forget(javax.transaction.xa.Xid arg0)
            throws javax.transaction.xa.XAException
XA callback.

Specified by:
forget in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

rollback

public void rollback(javax.transaction.xa.Xid arg0)
              throws javax.transaction.xa.XAException
XA callback.

Specified by:
rollback in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

end

public void end(javax.transaction.xa.Xid arg0,
                int arg1)
         throws javax.transaction.xa.XAException
XA callback.

Specified by:
end in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

start

public void start(javax.transaction.xa.Xid arg0,
                  int arg1)
           throws javax.transaction.xa.XAException
XA callback.

Specified by:
start in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

commit

public void commit(javax.transaction.xa.Xid arg0,
                   boolean arg1)
            throws javax.transaction.xa.XAException
XA callback.

Specified by:
commit in interface javax.transaction.xa.XAResource
Throws:
javax.transaction.xa.XAException

doLog

public void doLog(boolean flag,
                  java.lang.String message)
Implements local logging.

Overrides:
doLog in class PMQInterfaceDispatcher
Parameters:
flag - true for information log level
message - the message text


Copyright © 2004-2008 Software AG. All Rights Reserved.