最近寫 Linux server and Java Client . 之前, 都只能用 192.168.1.255 的方式.
目前改寫測試, 已經可以運用 255.255.255.255.
Linux Server : 可以直接註冊 255.255.255.255:9999 bind
Java Client : DatagramSocket 需指定會傳送 Broadcast 的 IP.
與上一版的差別, 在於 JavaClient 需要指定 出口 IP
2012-04-16
2012-03-24
char on Arm-Linux
最近在寫 Linux socket Server. 需要從 Java 傳送 資料到Linux Server .
Linux 用 *char 來接收. Java 得用byte 方式傳送才有辦法一致.
當開發環境在 pc Linux 時, default is signed char.
當程式轉換到 Arm-Linux 時, 他卻是跑出 unsigned char.
所以, 當你需要 signed char on Arm-Linux , 就是直接宣告為 signed char.
否則, Arm-Linux default char is unsigned char.
Linux 用 *char 來接收. Java 得用byte 方式傳送才有辦法一致.
當開發環境在 pc Linux 時, default is signed char.
當程式轉換到 Arm-Linux 時, 他卻是跑出 unsigned char.
所以, 當你需要 signed char on Arm-Linux , 就是直接宣告為 signed char.
否則, Arm-Linux default char is unsigned char.
2012-01-11
[Mantis] 在LADP 認證下, 使用者自行註冊
在Mantis 中, 可以整合LADP 認證. 但是, 如果要每一個帳號都要admin 來建立也是很累的.
所以就想說看看有沒有辦法, 採用LDAP 認證, 但是使用者 可以自己註冊.
下列三個步驟
1. 修改 config_inc.php 新增 $g_allow_signup = ON;
雖然 Default 就是 ON, 不過設定一下以後看也清楚. 
2. 修改 core/print_api.php
# prints the signup link
function print_signup_link() {
if ( ( ON == config_get_global( 'allow_signup' ) ) &&
#( LDAP != config_get_global( 'login_method' ) ) &&
( ON == config_get( 'enable_email_notification' ) )
) {
print_bracket_link( 'signup_page.php', lang_get( 'signup_link' ) );
}
}
3. 修改 singup_page.ph
# Check for invalid access to signup page
#if ( OFF == config_get_global( 'allow_signup' ) || LDAP == config_get_global( 'login_method' ) ) {
if( OFF == config_get_global( 'allow_signup' )) {
print_header_redirect( 'login_page.php' );
}
所以就想說看看有沒有辦法, 採用LDAP 認證, 但是使用者 可以自己註冊.
下列三個步驟
1. 修改 config_inc.php 新增 $g_allow_signup = ON;
雖然 Default 就是 ON, 不過設定一下以後看也清楚. 
2. 修改 core/print_api.php
# prints the signup link
function print_signup_link() {
if ( ( ON == config_get_global( 'allow_signup' ) ) &&
#( LDAP != config_get_global( 'login_method' ) ) &&
( ON == config_get( 'enable_email_notification' ) )
) {
print_bracket_link( 'signup_page.php', lang_get( 'signup_link' ) );
}
}
3. 修改 singup_page.ph
# Check for invalid access to signup page
#if ( OFF == config_get_global( 'allow_signup' ) || LDAP == config_get_global( 'login_method' ) ) {
if( OFF == config_get_global( 'allow_signup' )) {
print_header_redirect( 'login_page.php' );
}
2011-12-17
2011-12-08
[Jboss] ESB SQL Provider
公司的異質系統傳輸資料幾乎都是採用 DB 交換. EDI 與 ERP 之間的資料交換, 除了文件內容的Table 外. 另外多建立了一個 Document_Change Table , 裡頭存有 Document Type, Document Name 等等. 每一個系統各自去建立相關的 Schedule , 去檢查該Table 是否有自己需要的 Document. 這樣的整合也沒有說不好, 再沒有整合工具的前提下, 是一個可以接受的方案.
Jboss ESB 有提供 SQL-Provider 的工具. 應該是JBoss ESB 在遇到很多公司都有同樣的需求時, 所發展出來的 Provider. 可以讓 SOA 採用漸進的方式替換掉原有系統整合.
SQL-Provider 有其使用前提, JBoss ESB 並沒有清楚的解釋. 只能從 相關的sample code 去看出一些端倪. 下面就先介紹 前置作業.
1. Table Column 需要的欄位
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 的方式
訂閱:
文章 (Atom)
