|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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 documentationNested 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.Component
init
in class org.openadaptor.adaptor.AbstractSimpleSink
props
- 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.Sink
processMessage
in class org.openadaptor.adaptor.AbstractSimpleSink
org.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.IbafTransactionalResource
txnBegin
in class org.openadaptor.adaptor.SimpleComponent
org.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.IbafTransactionalResource
txnCommitWithExceptions
in class org.openadaptor.adaptor.SimpleComponent
org.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.IbafTransactionalResource
txnCommit
in class org.openadaptor.adaptor.SimpleComponent
org.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.IbafTransactionalResource
txnRollback
in class org.openadaptor.adaptor.SimpleComponent
org.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.JdbcTransactionalResource
org.openadaptor.adaptor.IbafException
isManagingOwnTransactions()
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.JdbcTransactionalResource
org.openadaptor.adaptor.IbafException
_dbConnection
protected void connectToServer() throws org.openadaptor.adaptor.IbafException
org.openadaptor.adaptor.IbafException
protected boolean showSQLWarnings(java.sql.SQLWarning warn)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |