## org.apache.catalina.tribes.group.interceptors
Class TwoPhaseCommitInterceptor

    java.lang.Object
      org.apache.catalina.tribes.group.ChannelInterceptorBase
          org.apache.catalina.tribes.group.interceptors.TwoPhaseCommitInterceptor

All Implemented Interfaces:
  ChannelInterceptor, Heartbeat, MembershipListener

    public class TwoPhaseCommitInterceptor

extends ChannelInterceptorBase

Title:

Description:

Company:

Version:
  1.0
Author:
  not attributable

Nested Class Summary
`static class` `TwoPhaseCommitInterceptor.MapEntry`

Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor
`ChannelInterceptor.InterceptorEvent`

Field Summary
`protected boolean` `deepclone`
`static byte[]` `END_DATA`
`protected long` `expire`
`protected java.util.HashMap` `messages`
`static byte[]` `START_DATA`

Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
`optionFlag`

Constructor Summary
`TwoPhaseCommitInterceptor()`

Method Summary
`boolean` `getDeepclone()`
`long` `getExpire()`
`void` `heartbeat()` The `heartbeat()` method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.
`void` `messageReceived(ChannelMessage msg)` the `messageReceived` is invoked when a message is received.
`void` `sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload)` The `sendMessage` method is called when a message is being sent to one more destinations.
`void` `setDeepclone(boolean deepclone)`
`void` `setExpire(long expire)`

Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase
`accept, fireInterceptorEvent, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, memberAdded, memberDisappeared, okToProcess, setNext, setOptionFlag, setPrevious, start, stop`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### START_DATA

    public static final byte[] START_DATA

### END_DATA

    public static final byte[] END_DATA

### messages

    protected java.util.HashMap messages

### expire

    protected long expire

### deepclone

    protected boolean deepclone

Constructor Detail

### TwoPhaseCommitInterceptor

    public TwoPhaseCommitInterceptor()

Method Detail

### sendMessage

    public void sendMessage(Member[] destination,
                            ChannelMessage msg,
                            InterceptorPayload payload)
                     throws ChannelException

  Description copied from interface: `ChannelInterceptor`
  The `sendMessage` method is called when a message is being sent to one more destinations. The interceptor can modify any of the parameters and then pass on the message down the stack by invoking `getNext().sendMessage(destination,msg,payload)`
  Alternatively the interceptor can stop the message from being sent by not invoking `getNext().sendMessage(destination,msg,payload)`
  If the message is to be sent asynchronous the application can be notified of completion and errors by passing in an error handler attached to a payload object.
  The ChannelMessage.getAddress contains Channel.getLocalMember, and can be overwritten to simulate a message sent from another node.

  Specified by:
    `sendMessage` in interface `ChannelInterceptor`
  Overrides:
    `sendMessage` in class `ChannelInterceptorBase`
  Parameters:
    `destination` - Member[] - the destination for this message
    `msg` - ChannelMessage - the message to be sent
    `payload` - InterceptorPayload - the payload, carrying an error handler and future useful data, can be null
  Throws:
    `ChannelException`
  See Also:
    `ErrorHandler`, `InterceptorPayload`

### messageReceived

    public void messageReceived(ChannelMessage msg)

  Description copied from interface: `ChannelInterceptor`
  the `messageReceived` is invoked when a message is received. `ChannelMessage.getAddress()` is the sender, or the reply-to address if it has been overwritten.

  Specified by:
    `messageReceived` in interface `ChannelInterceptor`
  Overrides:
    `messageReceived` in class `ChannelInterceptorBase`
  Parameters:
    `msg` - ChannelMessage

### getDeepclone

    public boolean getDeepclone()

### getExpire

    public long getExpire()

### setDeepclone

    public void setDeepclone(boolean deepclone)

### setExpire

    public void setExpire(long expire)

### heartbeat

    public void heartbeat()

  Description copied from interface: `ChannelInterceptor`
  The `heartbeat()` method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.

  Specified by:
    `heartbeat` in interface `ChannelInterceptor`
  Specified by:
    `heartbeat` in interface `Heartbeat`
  Overrides:
    `heartbeat` in class `ChannelInterceptorBase`

Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.