|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.openadaptor.adaptor.SimpleComponent
org.openadaptor.adaptor.AbstractWriter
org.openadaptor.adaptor.AbstractSimpleSink
isc.sensor.outputadaptor.oaextensions.SQLSink
public class SQLSink
This SQLSink works with SimpleSinkSQLGenerator to provide support for non-stored procedure databases like MySQL. Unfortunilty Open Adaptor 1.7.1 has a brain dead support for MySql via SQLSink and SimpleSinkSQLGenerator. This file has been copied and modified from the original 1.7.1 code.
Functionality Added:
SQL Statements at main level:
This is generally used when only one object type if defined. SQL statements
are parameterised by the DataObject attributes names (delimited by %).
A.C2.SQLStatement1 = insert orders select MAX(order_id)+1, '%ric_code%', %size%, %price%, getdate(), NULL from orders
A.C2.SQLStatement2 = ....
A.C2.SQLStatementn = ....
Each object type should be defined as typename by a numerically increasing
type number. For example: A.C2.Type1 = typename. The typename prefix should
then be used to categorized the Sink type SQL statements. For example
A.C2.typename.SQLStatement. if one SQL statements is defined use the single
"SQLStatement" parameter. If more than one SQL statements are defined then
use the numerical for "SQLStatementN" where N equals sql statement number (1,
2, 3, etc).
A.C2.Type1 = UDPSession
A.C2.UDPSession.SQLStatement = Insert Into sessions (startTime, sensorName, interfaceF1, interfaceF2, sessionKey, duration,
protocolName, clientAddr, clientPort, serverAddr, serverPort, status, serviceName, packetsSent, packetsRecv, dataSent, dataRecv, retryPktSent,
retryPktRecv) Values ('%startTime%', '%sensorName%', '%interface_f1%', '%interface_f2%', '%session%', %duration%, '%protocol%', '%client_addr%',
%client_port%, '%server_addr%', %server_port%, '%status%', '%service_name%', %packets_sent%, %packets_recv%, %data_sent%, %data_recv%,
%retry_packets_sent%, %retry_packets_recv%);
Inline Object Attribute Transformer Supports calling a transformer
on an attribute prior to executing SQL statements. Since SQLSinks work on
simple string attributes, it is sometimes necessary to transform attributed
from a complex datatype to a string, for example a primitive array byte[],
long[], etc. In some cases this mechaism is easier than using a transformer
pipe, but functions the same way.
Specify the "NumAttributes = N" parameter where N is the total number of
attributes in the type. Then specify the "AttNameN" and "AttTransformerN for
the attribute to be transformed. AttNameN is the name of the attribute where
N is the location of the attribute in the object. AttTransformerN is the
fully qualified transformer object to be called and N is the location of the
attributed in the object.
A.C2.Type3 = TCPFlowSummary
A.C2.TCPFlowSummary.NumAttributes=18
A.C2.TCPFlowSummary.AttName17 = packetTimings
A.C2.TCPFlowSummary.AttTransformer17 = isc.sensor.outputadaptor.oaextensions.PrimitiveArrayTransformerToString
A.C2.TCPFlowSummary.AttName18 = tcpFlags
A.C2.TCPFlowSummary.AttTransformer18 = isc.sensor.outputadaptor.oaextensions.PrimitiveArrayTransformerToString
org.openadaptor.dostrings.transformer.AbstractTransformer,
Openadaptor documentation| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class org.openadaptor.adaptor.SimpleComponent |
|---|
org.openadaptor.adaptor.SimpleComponent.StateHolder |
| Field Summary | |
|---|---|
protected java.sql.Connection |
_dbConnection
The JDBC connection we establish. |
protected org.openadaptor.adaptor.util.JdbcConnectionParams |
_jdbcConnectionParams
Jdbc connection container |
(package private) org.openadaptor.adaptor.jdbc.SinkSQLGenerator |
_sql_gen
SQL Generator |
(package private) static org.apache.log4j.Logger |
log
|
| Fields inherited from class org.openadaptor.adaptor.AbstractSimpleSink |
|---|
_continue_on_exception |
| Fields inherited from class org.openadaptor.adaptor.AbstractWriter |
|---|
_packetName, _packetSize, _record_delimiter, _string_writer, _writeBatchAsRecord, _writer, PACKET_NAME, PACKET_SIZE |
| Fields inherited from class org.openadaptor.adaptor.SimpleComponent |
|---|
_controller, _formatter, _name, _propsPrefix, _readerDelegate, _textEncoding, MESSAGE_WRITER_PREFIX, MESSAGEID_ATTR, TEXT_ENCODING_ATTR |
| Constructor Summary | |
|---|---|
SQLSink()
|
|
| Method Summary | |
|---|---|
protected void |
connectToServer()
|
java.sql.Connection |
getJdbcConnection()
get jdbc connection |
void |
init(java.lang.String name,
java.util.Properties props,
java.lang.String prefix,
org.openadaptor.adaptor.Controller controller)
Initialise from properties object. |
boolean |
isManagingOwnTransactions()
Flag stating whether this Sink is managing its own transactions or not. |
void |
processMessage(org.openadaptor.adaptor.Message message)
checks continue on exception flag, this will either throw a pipeline exception or mark data array element with exception and set mapping /** Processes the messages passed to it by the controller. |
void |
setJdbcConnection(java.sql.Connection c)
set this components jdbc connection, throws exception if this is not possible |
void |
setManagingOwnTransactions(boolean managingOwnTransactions)
instruct component to manage own connections throws exception if this is not possible |
protected boolean |
showSQLWarnings(java.sql.SQLWarning warn)
|
void |
txnBegin()
Called by the controller when a txnBegin is requested by the Source of a message |
void |
txnCommit()
Called by the controller when a txnCommit is requested by the Source of a message |
void |
txnCommitWithExceptions(org.openadaptor.adaptor.Message message)
Called by the controller when a txnCommit is requested by the Source of a message In this case not all of the data in the message was successfully processed, you can get an array of Exceptions using Message.getExceptions, this corresponds to the array of data objects. |
void |
txnRollback()
Called by the controller when a txnRollback is requested by the Source of a message |
| Methods inherited from class org.openadaptor.adaptor.AbstractSimpleSink |
|---|
cleanUp, processHospitalException, writerHospitalException |
| Methods inherited from class org.openadaptor.adaptor.AbstractWriter |
|---|
getDOStringWriter, getRecordDelimiter, getWriter, setDOStringWriter, setRecordDelimiter, setWriter, writeDataObjects, writeMessage, writerCleanUp, writeRecord, writerStartUp |
| Methods inherited from class org.openadaptor.adaptor.SimpleComponent |
|---|
addCallback, canUpdateWhileRunning, customControl, didReceiveMessage, getAsProperties, getCallbackManager, getCurrentState, getCustomControlProperties, getLastUID, getName, getProperty, getProperty, getPropsPrefix, getRequestedState, getSecurityManager, getStatus, getTextEncoding, getXMLFormatter, notifyEvent, pause, removeCallback, resume, setCallbackManager, setCallbackManager, setCurrentState, setFromProperties, setFromProperties, setFromResource, setName, setPropsPrefix, setRequestedState, terminate, txnRollback, waitForRequestedStateChange |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.openadaptor.adaptor.IbafTransactionalResource |
|---|
txnRollback |
| Methods inherited from interface org.openadaptor.adaptor.Component |
|---|
customControl, getName, getPropsPrefix, getRequestedState, getStatus, pause, resume, setName, setPropsPrefix, terminate |
| Methods inherited from interface org.openadaptor.adaptor.Configurable |
|---|
canUpdateWhileRunning, getAsProperties, setFromProperties, setFromProperties |
| Methods inherited from interface org.openadaptor.adaptor.CallbackProvider |
|---|
addCallback, getCallbackManager, notifyEvent, removeCallback, setCallbackManager, setCallbackManager |
| Field Detail |
|---|
static org.apache.log4j.Logger log
org.openadaptor.adaptor.jdbc.SinkSQLGenerator _sql_gen
protected org.openadaptor.adaptor.util.JdbcConnectionParams _jdbcConnectionParams
protected java.sql.Connection _dbConnection
| Constructor Detail |
|---|
public SQLSink()
| Method Detail |
|---|
public void init(java.lang.String name,
java.util.Properties props,
java.lang.String prefix,
org.openadaptor.adaptor.Controller controller)
throws org.openadaptor.adaptor.IbafException
init in interface org.openadaptor.adaptor.Componentinit in class org.openadaptor.adaptor.AbstractSimpleSinkprops - Properties objectprefix - Prefix string to search for propertiesname - The name to be given to the componentcontroller - The component's controller object
DOStringException - Thrown if initialisation fails, mandatory
properties are missing or properties cannot
be parsed.
org.openadaptor.adaptor.IbafException - Thrown if initialisation fails, mandatory
properties are missing or properties cannot
be parsed.Controller,
SimpleController
public void processMessage(org.openadaptor.adaptor.Message message)
throws org.openadaptor.adaptor.PipelineException
org.openadaptor.adaptor.AbstractSimpleSink
processMessage in interface org.openadaptor.adaptor.SinkprocessMessage in class org.openadaptor.adaptor.AbstractSimpleSinkorg.openadaptor.adaptor.PipelineException - If processing fails for any reason.
public void txnBegin()
throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.SimpleComponent
txnBegin in interface org.openadaptor.adaptor.IbafTransactionalResourcetxnBegin in class org.openadaptor.adaptor.SimpleComponentorg.openadaptor.adaptor.IbafException - If fails to begin the transactionController.txnBegin(Source)
public void txnCommitWithExceptions(org.openadaptor.adaptor.Message message)
throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.SimpleComponent
txnCommitWithExceptions in interface org.openadaptor.adaptor.IbafTransactionalResourcetxnCommitWithExceptions in class org.openadaptor.adaptor.SimpleComponentorg.openadaptor.adaptor.IbafException - If fails to commit the transactionController.txnCommit(Source)
public void txnCommit()
throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.SimpleComponent
txnCommit in interface org.openadaptor.adaptor.IbafTransactionalResourcetxnCommit in class org.openadaptor.adaptor.SimpleComponentorg.openadaptor.adaptor.IbafException - If fails to commit the transactionController.txnCommit(Source)
public void txnRollback()
throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.SimpleComponent
txnRollback in interface org.openadaptor.adaptor.IbafTransactionalResourcetxnRollback in class org.openadaptor.adaptor.SimpleComponentorg.openadaptor.adaptor.IbafException - If fails to rollback the transactionController.txnRollback(Source)public boolean isManagingOwnTransactions()
isManagingOwnTransactions in interface org.openadaptor.adaptor.JdbcTransactionalResource
public void setManagingOwnTransactions(boolean managingOwnTransactions)
throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.JdbcTransactionalResource
setManagingOwnTransactions in interface org.openadaptor.adaptor.JdbcTransactionalResourceorg.openadaptor.adaptor.IbafExceptionisManagingOwnTransactions()public java.sql.Connection getJdbcConnection()
org.openadaptor.adaptor.JdbcTransactionalResource
getJdbcConnection in interface org.openadaptor.adaptor.JdbcTransactionalResource_dbConnection
public void setJdbcConnection(java.sql.Connection c)
throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.JdbcTransactionalResource
setJdbcConnection in interface org.openadaptor.adaptor.JdbcTransactionalResourceorg.openadaptor.adaptor.IbafException_dbConnection
protected void connectToServer()
throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.IbafExceptionprotected boolean showSQLWarnings(java.sql.SQLWarning warn)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||