日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java使用Jolt连接Tuxedo服务器

發(fā)布時間:2023/12/31 java 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java使用Jolt连接Tuxedo服务器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

在電信領域的開發(fā)中,現(xiàn)在流行的架構是前臺使用java,負責組織業(yè)務流程、展現(xiàn)結果,后臺使用C/C++來封裝各種服務,供前臺調用。這就會出現(xiàn)前臺Java如何連接Tuxedo服務器,調用服務的問題。通常,有兩種解決方案,WTC和Jolt。WTC是weblogic連接tuxedo的專有方案,Jolt是tuxedo本身攜帶的組件。因為weblogic和tuxedo都是oracle的產(chǎn)品,因此,可以推測,WTC的集成度和效率會高一些,功能強大一些,但須于weblogic綁定,沒有Jolt自由度高,因此個人推薦使用Jolt來連接tuxedo.

下面將介紹使用Jolt連接Tuxedo過程中,tuxedo側的主要配置,以及令人頭痛的亂碼問題的解決:

?

1.1ubbconfig文件配置

為使Jolt客戶端正常連接到Tuxedo服務器,需要在ubbconfig中開啟JSLJREPSVR兩個進程,JSL用于監(jiān)聽并分發(fā)客戶端的請求,JREPSVR進程用于配置Tuxedo導出給Jolt客戶端的服務,具體配置如下:

    • 修改*RESOURCES區(qū)的MAXACCESSERS參數(shù)的值為足夠大,如900

    • *GROUPS區(qū)添加JSLGRPJREPGRP兩個group,如下:

JSLGRP LMID=SITE1 GRPNO=3

JREPGRP LMID=SITE1 GRPNO=4

?

其中,LMID字段要與*MACHINES區(qū)中Tuxedo所在主機的LMID相同。

    • *SERVERS區(qū)添加JSLJREPSVR兩個server,如下:

JSL SRVGRP=JSLGRP SRVID=755

CLOPT="-A -- -n //1.2.3.4:5002 -m 5 -M 10 -x 5"

JREPSVR SRVGRP=JREPGRP SRVID=760 RESTART=Y GRACE=0

CLOPT="-A -- -W -P /bea/tuxedo8.1/udataobj/jolt/repository/jrepository"

?

其中,SRVGRP字段要與*GROUPS區(qū)添加JSLGRPJREPGRP兩個group對應;JSLCLOPT字段中的地址要填寫Tuxedo對外提供服務的真實地址;JREPSVRCLOPT字段中的-P屬性是指定的Jolt的服務注冊表文件,該路徑必須跟真實的路徑相符。其他各個參數(shù)的詳細含義,可以參照下面的鏈接:

?

http://download-llnw.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/jdg/dvconfig.html

?

先前ubbconfig中可能開啟了WSL進程,該進程可以關閉,Jolt不使用該服務。

    • 確認Tuxedo安裝中是否包含Joltlicsence

打開

TUXEDO_HOME\udataobj\jolt\lic.txt

文件,查看其中是否包含[BEA JOLT]段,如果不包含,則需要添加該licsence,否則,Jolt 服務器將無法啟動

全部配置完畢后,重啟Tuxedo服務器,若在控制臺看到如下輸出,則說明JSLJREPSVR服務啟動成功:

?

exec JSL -A -- -n //1.2.3.4:5002 -m 5 -M 10 -x 5 :

process id=5298 ... Started.

exec JREPSVR -A -- -W -P /bea/tuxedo8.1/udataobj/jolt/repository/jrepository :

process id=5304 ... Started.

問題列表:

    • JSL進程啟動失敗,出現(xiàn)如下異常:

exec JSL -A -- -n //1.2.3.3:5002 -m 5 -M 10 -x 5 :

CMDTUX_CAT:1685: ERROR: Application initialization failure

?

該異常可能是Tuxedo沒裝Joltlicsence,或Joltlicsence失效。

    • JSL進程啟動失敗,出現(xiàn)如下異常:

095007.s22024!JSH.16097.3086915264.-2: JOLT_CAT:1008: "ERROR: Could not establish listening address on network 0x000213890a047822"

該異常可能是JSL使用的端口被占用,換一個可用的端口即可。

1.2、導出Tuxedo服務

為使Jolt客戶端能夠查找到需要的服務,必須將需要的Tuxedo服務導出到Jolt注冊表中,即上面提到的jrepository文件。服務的導出既可在Tuxedo服務器上進行,也可在其他客戶端機器上進行。具體如下:

    • 在機器上安裝JDK,并配置path環(huán)境變量。

    • jolt.jarjoltadmin.jar加載到classpath下,如下:

CLASSPATH=.:/bea/tuxedo8.1/udataobj/jolt/joltadmin.jar:/bea/tuxedo8.1/udataobj/jolt/jolt.jar

?

上面的兩個jar包在TUXEDO_HOME \udataobj\jolt目錄下可以找到。

    • 導出服務

導出Tuxedo服務時,需要根據(jù)要導出的服務的詳細定義編寫導出腳本。比如:

service=SVC

export=true

inbuf=VIEW32

outbuf=STRING

inview=trans

param=routeid

type=string

access=in

param=inxml

type=string

access=in

param=outxml

type=string

access=out

?

其中service代表Tuxedo服務名,export表示是否導出,inbuf代表傳出參數(shù)的類型,outbuf代表返回參數(shù)的類型,param代表傳入傳出參數(shù)的名字,type代表傳入傳出參數(shù)的類型,access表示參數(shù)的訪問類型。編寫好導出腳本,將其保存成文本文件,如SVC.rep,在命令行進入所在目錄,執(zhí)行下面的命令執(zhí)行導出:

?

java bea.jolt.admin.jbld -p aaa //1.2.3.4:5002 SVC.rep

?

注意,ip及端口需要與ubbconfig文件中配置的JSL進程的CLOPT字段中的地址一致。

?

如果看到如下信息,則說明服務導出成功:

?

Line[1]: Service [SVC]: Inserted

Previous Package [PKG/aaa]: Deleted

Package [PKG/aaa]: Inserted

?

BULK LOAD SUMMARY

-----------------

Bulk load file name: SVC.rep

Services Defined in file: 1

Services Inserted: 1

Services Not Replaced: 0

Services Errors: 0

Previous Bulk Services Deleted: 0

?

問題列表:

  • 導出失敗,出現(xiàn)如下異常:

C:\>java bea.jolt.admin.jbld -p abm //1.2.3.4:5002 SVC_BILL_REDUCE.rep

Exception in thread "main" bea.jolt.ServiceException: Service is not available:.GETKEYS

at bea.jolt.JoltRemoteService.init(JoltRemoteService.java:156)

at bea.jolt.JoltRemoteService.(JoltRemoteService.java:112)

at bea.jolt.admin.JSvcPkgTbl.initTable(jbld.java:1010)

at bea.jolt.admin.JSvcPkgTbl.(jbld.java:990)

at bea.jolt.admin.JBldDefRec.(jbld.java:138)

at bea.jolt.admin.jbld.main(jbld.java:801)

?

該異常可能是因為預先配置了“1.3、國際化”的配置,從而客戶端與服務器的字符編碼不一致,服務器無法識別客戶端發(fā)送的導出命令造成的。解決辦法是,將主機上的系統(tǒng)變量JOLTI18N=TRUE刪除,重啟Tuxedo,重新執(zhí)行導出命令。

?

1.3、國際化

由于Jolt客戶端與Tuxedo交互時,相互傳遞的參數(shù)可能包含中文,因此,要對傳輸?shù)膬?nèi)容進行國際化。步驟如下:

    • Tuxedo服務器端

在主機上添加下面的環(huán)境變量,重啟Tuxedo服務器,JSH會參照此變量。

JOLTI18N=TRUE

    • Jolt客戶端

jolti18n.jar添加到classpath下,并在系統(tǒng)參數(shù)中添加如下屬性,其中,charsetName代表Jolt客戶端與tuxedo交互時使用的字符編碼集,該字符編碼集必須在客戶端和服務器上都支持,如GBK

bea.jolt.encoding=charsetName

系統(tǒng)屬性的添加方法有如下兩種:

$java ... -Dbea.jolt.encoding=codesetname ...

System.setProperty("bea.jolt.encoding", joltEncoding);

注意,導出服務時,需關閉國際化,否則會報錯。

?

另,以上過程中若出現(xiàn)異常,可以查看ULOG進行確認。

?

以上就是Tuxdeo端的全部配置,配置完畢后,就可以使用Jolt客戶端連接并調用Tuxedo服務了。

轉載于:https://my.oschina.net/hunterli/blog/12535

總結

以上是生活随笔為你收集整理的Java使用Jolt连接Tuxedo服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。