話說從我公司導入SAP後,我就在想怎從網頁上連線SAP
當然從JDBc連線SAP資料庫也是可以啦...且取出來的無論中文字還是什麼都很OK
但SAP官方是不建議這樣直接連
於是我在網路上找到JCO的方式
連線的方式網路上都有
反正就從SAP網站下載sapjco後
1.將目錄複製到c:\jco
2.將檔案librfc32.dll複製到C:\windows\system32
3.將sapjco.jar複製到C:\Tomcat\lib\
4.設定classpath 跟path
重新啟動Tomcat就好了
只是後來為的連線方便我寫的一個簡單的Javabean
但當初寫好後卻一直發生
conn SetExecute Err=com.sap.mw.jco.JCO$Exception: (132) JCO_ERROR_CONCURRENT_CALL: Concurrent call. Connection currently used in another thread.
要不然動不動就一直發生連線數爆掉的訊息
我有在這邊提出問題有人指點怎做
但還是沒辦法解決我的問題
http://www.itpub.net/thread-1172920-2-1.html
後來研究的一段時間後
發現的以下作法
以下轉貼
http://www.blogjava.net/drmagic/archive/2005/11/30/22022.html
5 public synchronized static void prepare() throws SapInterfaceException {
6 pool = JCO.getClientPoolManager().getPool(POOL_NAME);
7 if (pool == null) {
8 try {
9 Properties properties = new Properties();
10 BufferedInputStream in = new BufferedInputStream(
11 SimpleResource.class
12 .getResourceAsStream(PROPERTIES_FILE));
13 properties.load(in);
14 in.close();
15 JCO.addClientPool(POOL_NAME, MAX_CONNECTION_COUNT, properties);
16 pool = JCO.getClientPoolManager().getPool(POOL_NAME);
17 } catch (Exception ex) {
18 throw new SapInterfaceException("saply", ex);
19 }
20 }
21 }
其中 有紅色字的都是重點
這個作法給的我很多想法並且開始著手修改我的javabean
然後又發生一個三不五時丟出一個null
後來才發現原來在取得連線之前最好先這樣做
mConnection = null;
mConnection = JCO.getClient(POOL_NAME);
然後我把程式改成從jsp取得javabean的mConnection 回傳值
在丟回去javabean裡面取得後續建立的連線
從此以後問題就比較少發生的
留言列表