Jboss ESB 有提供 SQL-Provider 的工具. 應該是JBoss ESB 在遇到很多公司都有同樣的需求時, 所發展出來的 Provider. 可以讓 SOA 採用漸進的方式替換掉原有系統整合.
SQL-Provider 有其使用前提, JBoss ESB 並沒有清楚的解釋. 只能從 相關的sample code 去看出一些端倪. 下面就先介紹 前置作業.
1. Table Column 需要的欄位
- message-id-column : 也就是 Table primary Key , 不能是 combo Key
- message-column : ESB 只會抓取單一欄位的內容
- status-column : ESB 會填入相關的 Status.
org.jboss.soa.esb.listeners.gateway.SqlTableGatewayListener 針對欄位所做的解釋
A field that will be used to mark a row as 'P' (pending), 'W' (in process), 'D' (done) or 'E' (error). When adding a pending row, make sure that the status_col value if an upper-cased 'P', as upper-cased characters are used as a convention.
所以簡單的說, 如果要 ESB 把該資料抓去處理, 一定要放 'P'. ESB 處理中 會被改成'W', 最後的解過就是 'D' or 'E'.
- insert-timestamp-column : ESB 會填入最後的時間
- 下面是 ESB sample code
<sql-provider name="SQLprovider" url="jdbc:hsqldb:hsql://localhost:1704" driver="org.hsqldb.jdbcDriver" username="sa" password=""> <sql-bus busid="helloSQLChannel" > <sql-message-filter tablename="GATEWAY_TABLE" status-column="STATUS_COL" order-by="DATA_COLUMN" where-condition="DATA_COLUMN like 'data%'" message-column="message" message-id-column="UNIQUE_ID" insert-timestamp-column="TIMESTAMP_COL" /> </sql-bus> </sql-provider>
- 這是我自己改用Datasource 的方式
沒有留言:
張貼留言