![[z/OS]](../images/ngzos.gif)
SOAP 調整
瞭解如何調整與 Web 服務一起使用的 SOAP 訊息。
關於這項作業
程序
- 在 servant.jvm.options (-Dcom.ibm.CORBA.iiop.noLocalCopies=1) 中指定 noLocalCopies。 如此傳遞參照時,便能夠依參照而不依值。 這只在您將 Enterprise Bean 顯現為 Web 服務時才適用。 如果要進一步瞭解,請參閱 Object Request Broker 服務設定資訊。
- 除非您正在主動對問題除錯,否則,請確定停用了所有追蹤。
- 當定義應用程式的交易原則時,請指定 TX_NOT_SUPPORTED,並選取區域交易。 相對於廣域交易,區域交易執行得比較好,因為在多個資源管理程式上協調確定範圍,並不需要 WebSphere®。
- 避免在 SOAP 訊息中傳遞空白屬性或空白元素。 請勿在 SOAP 訊息中包含額外不需要的資料。 如果您可以利用文件/文字樣式的 Web 服務呼叫,將要求以批次方式納入單一 SOAP 訊息,這會比傳送多重個別 SOAP 訊息好。 當 SOAP 訊息較小,包含較少 XML 元素,尤其是較少 XML 屬性時,SOAP 應用程式會執行得更好。 SOAP 訊息的內容必須序列化並進行剖析。 這些是耗資源的作業,應該進行最小化。 換言之,最好是傳送 1 個 10KB 的訊息,而不是傳送 10 個 1KB 的訊息。 不過,非常大的訊息(例如,超過 200KB)可能會影響系統資源(如記憶體)。
- 您可能需要增加預設 Java™ 資料堆大小。 SOAP 和 XML (DOM) 需要使用大量儲存體,因此較小的資料堆可能會導致過多的 Java 記憶體回收。 我們發現,對實驗室中大部分測試案例而言,256M (預設值) 的資料堆大小最好。 您可以利用 verbose:gc Java 指引來監視記憶體回收。
- 確保 TCP/IP 傳送/接收緩衝區夠大,能夠存放要傳送的大批 XML 訊息。
- 考慮使用「文件模型」而不是 RPC 模型。 它提供對 XML 格式的完全控制,但需要其他的程式設計工作。
- 當使用 RPC 樣式訊息時,可能的話,請嘗試傳送字串。
- 對於 Java API for XML-based RPC (JAX-RPC) Web 服務,請考慮編寫您自己的序列化程式及解除序列化程式,避免反射。