Methods Summary |
---|
public com.sun.xml.ws.rm.Message | getOriginalMessage(com.sun.xml.ws.rm.Message duplicate)Gets the original message in a the Sequence with a given message number.
int number = duplicate.getMessageNumber();
return get(number);
|
public com.sun.xml.ws.api.rm.SequenceSettings | getSequenceSettings()Implementation of ServerSequence.getSequenceSettings..
SequenceSettings settings = getSequenceConfig();
settings.sequenceId = getId();
OutboundSequence oseq = getOutboundSequence();
settings.companionSequenceId = (oseq != null) ?
oseq.getId() :
null;
return settings;
|
public com.sun.xml.ws.runtime.util.Session | getSession()Accessor for the session field.
return session;
|
public void | holdIfUndeliverable(com.sun.xml.ws.rm.Message message)If ordered delivery is required, resume processing the next Message
in the Sequence if it is waiting for this message to be delivered.
This method is called after ServerPipe.process returns for this message.
while waiting for gaps in the sequence to fill that can now be processed.
if (!config.ordered) {
return;
}
try {
int num = message.getMessageNumber();
//if immediate predecessor has not been processed, wait fcor it
if (num > 1) {
Message mess = get(num - 1);
if (mess == null || !mess.isComplete()) {
message.block();
}
}
} catch (InvalidMessageNumberException e) {}
|
public boolean | isExpired()Return value determines whether the interval since last activity
exceeds the inactivity timeout setting.
return System.currentTimeMillis() - this.getLastActivityTime() >
config.getInactivityTimeout();
|
public void | releaseNextMessage(com.sun.xml.ws.rm.Message message)If ordered delivery is required, resume processing the next Message
in the Sequence if it is waiting for this message to be delivered.
This method is called after ServerPipe.process returns for this message.
while waiting for gaps in the sequence to fill that can now be processed.
/**
* Flow Control can be enabled without ordered delivery in which case
* we want the storedmessages to be decremented
*/
/* if (!config.ordered) {
return;
}*/
message.complete();
--storedMessages;
//notify immediate successor if it is waiting
int num = message.getMessageNumber();
if (num < nextIndex - 1 && get(num + 1) != null) {
get(num + 1).resume();
}
|
public void | resetMessage(int index, com.sun.xml.ws.api.message.Message message, boolean complete)Used to re-populate a sequence with persisted messages
after a restart. Do not use for other purposes.
try {
com.sun.xml.ws.rm.Message mess = new com.sun.xml.ws.rm.Message(message);
set(index, mess);
if (complete) {
mess.complete();
}
} catch (RMException e) {
String m = Messages.COULD_NOT_RESET_MESSAGE.format(index, getId());
logger.log(Level.SEVERE, m, e);
}
|
public void | setSession(com.sun.xml.ws.runtime.util.Session s)Mutator for the session field.
session = s;
|