in modules/persistence/src/main/java/org/apache/sandesha2/storage/jdbc/PersistentRMSBeanMgr.java [472:544]
public boolean update(RMSBean bean)
throws SandeshaStorageException {
if (log.isDebugEnabled()) {
log.debug("Update bean : " + bean);
}
try {
PreparedStatement pstmt = getDbConnection().prepareStatement("update wsrm_rms set " +
"sequence_id=?,to_epr_addr=?,to_epr=?,reply_to_epr_addr=?,reply_to_epr=?,acks_to_epr_addr=?,acks_to_epr=?,rm_version=?,security_token_data=?," +
"last_activated_time=?,closed=?,terminated_flag=?,polling_mode=?,service_name=?," +
"flags=?,id=?,internal_sequence_id=?,create_sequence_msg_store_key=?," +
"reference_msg_store_key=?,last_send_error=?,highest_out_relates_to=?," +
"client_completed_messages=?,transport_to=?,offered_endpoint=?,offered_sequence=?," +
"anonymous_uuid=?,last_send_error_timestamp=?,last_out_message=?,highest_out_message_number=?," +
"next_message_number=?,terminate_added=?,timed_out=?,sequence_closed_client=?," +
"expected_replies=?,soap_version=?,termination_pauser_for_cs=?,avoid_auto_termination=?," +
"rms_flags=?" +
" where create_seq_msg_id='" + bean.getCreateSeqMsgID() + "'");
pstmt.setString(1, bean.getSequenceID());
EndpointReference epr = bean.getToEndpointReference();
pstmt.setString(2, epr != null ? epr.getAddress() : null);
// Derby don't serialize object in blob !
// pstmt.setObject(3, epr);
ByteArrayInputStream bais = serialize(epr);
pstmt.setBinaryStream(3, bais, bais.available());
epr = bean.getReplyToEndpointReference();
pstmt.setString(4, epr != null ? epr.getAddress() : null);
bais = serialize(epr);
pstmt.setBinaryStream(5, bais, bais.available());
epr = bean.getAcksToEndpointReference();
pstmt.setString(6, epr != null ? epr.getAddress() : null);
bais = serialize(epr);
pstmt.setBinaryStream(7, bais, bais.available());
pstmt.setString(8, bean.getRMVersion());
pstmt.setString(9, bean.getSecurityTokenData());
pstmt.setLong(10, bean.getLastActivatedTime());
pstmt.setInt(11, bean.isClosed() ? 1 : 0);
pstmt.setInt(12, bean.isTerminated() ? 1 : 0);
pstmt.setInt(13, bean.isPollingMode() ? 1 : 0);
pstmt.setString(14, bean.getServiceName());
pstmt.setInt(15, bean.getFlags());
pstmt.setLong(16, bean.getId());
pstmt.setString(17, bean.getInternalSequenceID());
pstmt.setString(18, bean.getCreateSequenceMsgStoreKey());
pstmt.setString(19, bean.getReferenceMessageStoreKey());
bais = serialize(bean.getLastSendError());
pstmt.setBinaryStream(20, bais, bais.available());
pstmt.setString(21, bean.getHighestOutRelatesTo());
RangeString rs = bean.getClientCompletedMessages();
pstmt.setString(22, rs != null ? rs.toString() : null);
pstmt.setString(23, bean.getTransportTo());
pstmt.setString(24, bean.getOfferedEndPoint());
pstmt.setString(25, bean.getOfferedSequence());
pstmt.setString(26, bean.getAnonymousUUID());
pstmt.setLong(27, bean.getLastSendErrorTimestamp());
pstmt.setLong(28, bean.getLastOutMessage());
pstmt.setLong(29, bean.getHighestOutMessageNumber());
pstmt.setLong(30, bean.getNextMessageNumber());
pstmt.setInt(31, bean.isTerminateAdded() ? 1 : 0);
pstmt.setInt(32, bean.isTimedOut() ? 1 : 0);
pstmt.setInt(33, bean.isSequenceClosedClient() ? 1 : 0);
pstmt.setLong(34, bean.getExpectedReplies());
pstmt.setInt(35, bean.getSoapVersion());
pstmt.setInt(36, bean.isTerminationPauserForCS() ? 1 : 0);
pstmt.setInt(37, bean.isAvoidAutoTermination() ? 1 : 0);
pstmt.setInt(38, bean.getRmsFlags());
pstmt.execute();
pstmt.close();
} catch (Exception ex) {
log.error("Update Exception " + ex);
throw new SandeshaStorageException("Exception in RMSBeanMgr update", ex);
}
return true;
}