📄 example7.java.html
字号:
<HTML><HEAD><TITLE>Java Source Code</TITLE></HEAD><BODY BGCOLOR=#FFFFFF><PRE><FONT color=#000000></FONT><FONT color=#008000>/**<em> </em><em>*</em><em> </em><em>Example7.java</em><em> </em><em>*</em><em>/</em></FONT><FONT color=#000000></FONT><FONT color=#0000FF><b>import</b></FONT><FONT color=#000000> com.sap.mw.jco.*;</FONT><FONT color=#008000>/**<em> </em><em>*</em><em> </em><em>Example</em><em> </em><em>of</em><em> </em><em>a</em><em> </em><em>JCo</em><em> </em><em>server</em><em> </em><em>with</em><em> </em><em>transaction</em><em> </em><em>processing</em><em> </em><em>*</em><em> </em><em>This</em><em> </em><em>is</em><em> </em><em>an</em><em> </em><em>example</em><em> </em><em>of</em><em> </em><em>the</em><em> </em><em>simplest</em><em> </em><em>implementation</em><em> </em><em>*</em><em> </em><em>of</em><em> </em><em>a</em><em> </em><em>JCo</em><em> </em><em>dual</em><em> </em><em>server.</em><em> </em><em>It</em><em> </em><em>uses</em><em> </em><em>dynamic</em><em> </em><em>repositories</em><em> </em><em>*</em><em> </em><em>for</em><em> </em><em>each</em><em> </em><em>of</em><em> </em><em>the</em><em> </em><em>servers.</em><em> </em><em>*</em><em> </em><em>*</em><em> </em><em>Property</em><em> </em><em>of</em><em> </em><em>SAP</em><em> </em><em>AG</em><em>,</em><em> </em><em>Walldorf</em><em> </em><em>*</em><em> </em><em>(</em><em>c</em><em>)</em><em> </em><em>Copyright</em><em> </em><em>SAP</em><em> </em><em>AG</em><em>,</em><em> </em><em>Walldorf</em><em>,</em><em> </em><em>2000</em><em>-</em><em>2005.</em><em> </em><em>*</em><em> </em><em>All</em><em> </em><em>rights</em><em> </em><em>reserved.</em><em> </em><em>*</em><em> </em><em>*</em><em> </em><em>@version</em><em> </em><em> </em><em>1.1</em><em> </em><em>*</em><em> </em><em>@author</em><em> </em><em> </em><em> </em><em>SAP</em><em> </em><em>AG</em><em>,</em><em> </em><em>Walldorf</em><em> </em><em>*</em><em>/</em></FONT><FONT color=#000000></FONT><FONT color=#008000>//<em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em></FONT><FONT color=#000000></FONT><FONT color=#0000FF><b>public</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>class</b></FONT><FONT color=#000000> Example7 </FONT><FONT color=#0000FF><b>implements</b></FONT><FONT color=#000000> </FONT><FONT color=#000080><b>JCO.ServerExceptionListener</b></FONT><FONT color=#000000>, </FONT><FONT color=#000080><b>JCO.ServerErrorListener</b></FONT><FONT color=#000000> {</FONT><FONT color=#008000>//<em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em><em>*</em></FONT><FONT color=#000000> </FONT><FONT color=#008000>/** <em> </em><em>*</em><em> </em><em> </em><em>This</em><em> </em><em>is</em><em> </em><em>the</em><em> </em><em>actual</em><em> </em><em>Server</em><em> </em><em>(</em><em>Listener</em><em>)</em><em> </em><em>object</em> <em> </em><em>*</em><em>/</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>static</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>public</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>class</b></FONT><FONT color=#000000> Server </FONT><FONT color=#0000FF><b>extends</b></FONT><FONT color=#000000> </FONT><FONT color=#000080><b>JCO.Server</b></FONT><FONT color=#000000> { </FONT><FONT color=#008000>/** <em> </em><em>*</em><em> </em><em> </em><em>Simple</em><em> </em><em>constructor.</em><em> </em><em>Just</em><em> </em><em>call</em><em> </em><em>superclass</em><em> </em><em>to</em><em> </em><em>initialize</em><em> </em><em>everything</em> <em> </em><em>*</em><em> </em><em> </em><em>properly.</em> <em> </em><em>*</em><em>/</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>public</b></FONT><FONT color=#000000> Server(String gwhost, String gwserv, String program_id, </FONT><FONT color=#000080><b>IRepository</b></FONT><FONT color=#000000> repos) { </FONT><FONT color=#0000FF><b>super</b></FONT><FONT color=#000000>(gwhost, gwserv, program_id, repos); } </FONT><FONT color=#008000>/** <em> </em><em>*</em><em> </em><em> </em><em>This</em><em> </em><em>function</em><em> </em><em>will</em><em> </em><em>be</em><em> </em><em>invoked</em><em> </em><em>when</em><em> </em><em>a</em><em> </em><em>transactional</em><em> </em><em>RFC</em><em> </em><em>is</em><em> </em><em>being</em><em> </em><em>called</em><em> </em><em>from</em><em> </em><em>a</em> <em> </em><em>*</em><em> </em><em> </em><em>SAP</em><em> </em><em>R</em><em>/</em><em>3</em><em> </em><em>system.</em><em> </em><em>The</em><em> </em><em>function</em><em> </em><em>has</em><em> </em><em>to</em><em> </em><em>store</em><em> </em><em>the</em><em> </em><em>TID</em><em> </em><em>in</em><em> </em><em>permanent</em><em> </em><em>storage</em><em> </em><em>and</em><em> </em><em>return</em><em> </em><em><</em><em>code</em><em>></em><em>true</em><em><</em><em>/</em><em>code</em><em>></em><em>.</em> <em> </em><em>*</em><em> </em><em> </em><em>The</em><em> </em><em>method</em><em> </em><em>has</em><em> </em><em>to</em><em> </em><em>return</em><em> </em><em><</em><em>code</em><em>></em><em>false</em><em><</em><em>/</em><em>code</em><em>></em><em> </em><em>if</em><em> </em><em>the</em><em> </em><em>a</em><em> </em><em>transaction</em><em> </em><em>with</em><em> </em><em>this</em><em> </em><em>ID</em><em> </em><em>has</em><em> </em><em>already</em> <em> </em><em>*</em><em> </em><em> </em><em>been</em><em> </em><em>process.</em><em> </em><em>Throw</em><em> </em><em>an</em><em> </em><em>exception</em><em> </em><em>if</em><em> </em><em>anything</em><em> </em><em>goes</em><em> </em><em>wrong.</em><em> </em><em>The</em><em> </em><em>transaction</em><em> </em><em>processing</em><em> </em><em>will</em><em> </em><em>be</em> <em> </em><em>*</em><em> </em><em> </em><em>aborted</em><em> </em><em>thereafter.</em><em><</em><em>b</em><em>></em> <em> </em><em>*</em><em> </em><em> </em><em>Derived</em><em> </em><em>servers</em><em> </em><em>must</em><em> </em><em>override</em><em> </em><em>this</em><em> </em><em>method</em><em> </em><em>to</em><em> </em><em>actually</em><em> </em><em>implement</em><em> </em><em>the</em><em> </em><em>transaction</em><em> </em><em>ID</em><em> </em><em>management.</em> <em> </em><em>*</em><em> </em><em> </em><em>@param</em><em> </em><em>tid</em><em> </em><em>the</em><em> </em><em>transaction</em><em> </em><em>ID</em> <em> </em><em>*</em><em> </em><em> </em><em>@return</em><em> </em><em><</em><em>code</em><em>></em><em>true</em><em><</em><em>/</em><em>code</em><em>></em><em> </em><em>if</em><em> </em><em>the</em><em> </em><em>ID</em><em> </em><em>is</em><em> </em><em>valid</em><em> </em><em>and</em><em> </em><em>not</em><em> </em><em>in</em><em> </em><em>use</em><em> </em><em>otherwise</em><em>,</em><em> </em><em><</em><em>code</em><em>></em><em>false</em><em><</em><em>/</em><em>code</em><em>></em><em> </em><em>otherwise</em> <em> </em><em>*</em><em>/</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>protected</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>boolean</b></FONT><FONT color=#000000> onCheckTID(String tid) { </FONT><FONT color=#0000FF><b>return</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>true</b></FONT><FONT color=#000000>; } </FONT><FONT color=#008000>/** <em> </em><em>*</em><em> </em><em> </em><em>This</em><em> </em><em>function</em><em> </em><em>will</em><em> </em><em>be</em><em> </em><em>called</em><em> </em><em>after</em><em> </em><em>the</em><em> </em><em><</em><em>em</em><em>></em><em>local</em><em><</em><em>/</em><em>em</em><em>></em><em> </em><em>transaction</em><em> </em><em>has</em><em> </em><em>been</em><em> </em><em>completed.</em> <em> </em><em>*</em><em> </em><em> </em><em>All</em><em> </em><em>resources</em><em> </em><em>assiciated</em><em> </em><em>with</em><em> </em><em>this</em><em> </em><em>TID</em><em> </em><em>can</em><em> </em><em>be</em><em> </em><em>released.</em><em><</em><em>b</em><em>></em> <em> </em><em>*</em><em> </em><em> </em><em>Derived</em><em> </em><em>servers</em><em> </em><em>must</em><em> </em><em>override</em><em> </em><em>this</em><em> </em><em>method</em><em> </em><em>to</em><em> </em><em>actually</em><em> </em><em>implement</em><em> </em><em>the</em><em> </em><em>transaction</em><em> </em><em>ID</em><em> </em><em>management.</em> <em> </em><em>*</em><em> </em><em> </em><em>@param</em><em> </em><em>tid</em><em> </em><em>the</em><em> </em><em>transaction</em><em> </em><em>ID</em> <em> </em><em>*</em><em>/</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>protected</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>void</b></FONT><FONT color=#000000> onConfirmTID(String tid) { } </FONT><FONT color=#008000>/** <em> </em><em>*</em><em> </em><em> </em><em>This</em><em> </em><em>function</em><em> </em><em>will</em><em> </em><em>be</em><em> </em><em>called</em><em> </em><em>after</em><em> </em><em><</em><em>em</em><em>></em><em>all</em><em><</em><em>/</em><em>em</em><em>></em><em> </em><em>RFC</em><em> </em><em>functions</em><em> </em><em>belonging</em><em> </em><em>to</em><em> </em><em>a</em><em> </em><em>certain</em><em> </em><em>transaction</em> <em> </em><em>*</em><em> </em><em> </em><em>have</em><em> </em><em>been</em><em> </em><em>successfully</em><em> </em><em>completed.</em><em> </em><em><</em><em>b</em><em>></em> <em> </em><em>*</em><em> </em><em> </em><em>Derived</em><em> </em><em>servers</em><em> </em><em>can</em><em> </em><em>override</em><em> </em><em>this</em><em> </em><em>method</em><em> </em><em>to</em><em> </em><em>locally</em><em> </em><em>commit</em><em> </em><em>the</em><em> </em><em>transaction.</em> <em> </em><em>*</em><em> </em><em> </em><em>@param</em><em> </em><em>tid</em><em> </em><em>the</em><em> </em><em>transaction</em><em> </em><em>ID</em> <em> </em><em>*</em><em>/</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>protected</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>void</b></FONT><FONT color=#000000> onCommit(String tid) { } </FONT><FONT color=#008000>/** <em> </em><em>*</em><em> </em><em> </em><em>This</em><em> </em><em>function</em><em> </em><em>will</em><em> </em><em>be</em><em> </em><em>called</em><em> </em><em>if</em><em> </em><em>an</em><em> </em><em>error</em><em> </em><em>in</em><em> </em><em>one</em><em> </em><em>of</em><em> </em><em>the</em><em> </em><em>RFC</em><em> </em><em>functions</em><em> </em><em>belonging</em><em> </em><em>to</em> <em> </em><em>*</em><em> </em><em> </em><em>a</em><em> </em><em>certain</em><em> </em><em>transaction</em><em> </em><em>has</em><em> </em><em>occurred.</em><em><</em><em>b</em><em>></em> <em> </em><em>*</em><em> </em><em> </em><em>Derived</em><em> </em><em>servers</em><em> </em><em>can</em><em> </em><em>override</em><em> </em><em>this</em><em> </em><em>method</em><em> </em><em>to</em><em> </em><em>locally</em><em> </em><em>rollback</em><em> </em><em>the</em><em> </em><em>transaction.</em> <em> </em><em>*</em><em> </em><em> </em><em>@param</em><em> </em><em>tid</em><em> </em><em>the</em><em> </em><em>transaction</em><em> </em><em>ID</em> <em> </em><em>*</em><em>/</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>protected</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>void</b></FONT><FONT color=#000000> onRollback(String tid) { } </FONT><FONT color=#008000>/** <em> </em><em>*</em><em> </em><em> </em><em>Called</em><em> </em><em>upon</em><em> </em><em>an</em><em> </em><em>incoming</em><em> </em><em>requests</em> <em> </em><em>*</em><em>/</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>protected</b></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>void</b></FONT><FONT color=#000000> handleRequest(</FONT><FONT color=#000080><b>JCO.Function</b></FONT><FONT color=#000000> function) { </FONT><FONT color=#008000>//<em> </em><em>Process</em><em> </em><em>incoming</em><em> </em><em>requests</em></FONT><FONT color=#000000> </FONT><FONT color=#0000FF><b>if</b></FONT><FONT color=#000000> (function</FONT><FONT color=#000080><b>.getName</b></FONT><FONT color=#000000>().equals(</FONT><FONT color=#FF00FF>"STFC_CONNECTION"</FONT><FONT color=#000000>)) { </FONT><FONT color=#008000>//<em> </em><em>Do</em><em> </em><em>your</em><em> </em><em>processing</em><em> </em><em>here</em></FONT><FONT color=#000000> </FONT><FONT color=#008000>//<em> </em><em>For</em><em> </em><em>now</em><em> </em><em>we</em><em> </em><em>just</em><em> </em><em>dump</em><em> </em><em>the</em><em> </em><em>function</em><em> </em><em>to</em><em> </em><em>a</em><em> </em><em>HTML</em><em> </em><em>file</em></FONT><FONT color=#000000> </FONT><FONT color=#008000>//<em> </em><em>which</em><em> </em><em>can</em><em> </em><em>be</em><em> </em><em>viewed</em><em> </em><em>nicely</em><em> </em><em>in</em><em> </em><em>a</em><em> </em><em>browser</em></FONT><FONT color=#000000> function</FONT><FONT color=#000080><b>.writeHTML</b></FONT><FONT color=#000000>(function</FONT><FONT color=#000080><b>.getName</b></FONT><FONT color=#000000>() + </FONT><FONT color=#FF00FF>".html"</FONT><FONT color=#000000>); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -