UNIX and Linux:IBM WebSphere MQ 程式庫載入從 Version 7.0.1 移轉至 Version 7.5

調查連接至 IBM® WebSphere® MQ for Windows Version 7.5 的應用程式是否鏈結至正確的安裝,並從正確的安裝載入程式庫。

開始之前

在啟動此作業之前,請先閱讀 UNIX、 Linux及 Windows 上的多重安裝佇列管理程式共存性 ,以及 將 IBM WebSphere MQ 程式庫從 7.0.1 版載入移轉至 7.5版

規劃並安裝 IBM WebSphere MQ for Windows Version 7.5,並記住安裝名稱,以及安裝是否設為主要。

關於此作業

Version 6.0Version 7.0.1中, IBM WebSphere MQ 應用程式所記載的建置程序會在編譯器的鏈結步驟中,包含指向 IBM WebSphere MQ 程式庫位置的明確程式庫路徑,以及指向 /usr/lib的明確程式庫路徑; 請參閱 圖 1。 針對 Version 7.5記載了相同的建置程序。 在 Version 6.0之前的舊版 IBM WebSphere MQ未記載要從中載入執行時期程式庫的特定位置。

圖 1. Linux C 伺服器應用程式, 32 位元,執行緒編譯及鏈結 Version 7.0.1
gcc -m32 -o amqsput_32_r amqsput0.c -I/opt/mqm/inc -L/opt/mqm/lib 
-Wl,-rpath=/opt/mqm/lib -Wl,-rpath=/usr/lib -lmqm_r -lpthread
其他 UNIX 平台所記載的建置步驟類似。 表 1 中的範例都是以 Linux為基礎。
如果您已遵循此建置程序,則在程式庫載入時安裝 Version 7.5 的效果取決於移轉實務範例; 請參閱 表 1:
表 1. UNIX and Linux 配置
 

實務範例

Version 7.5 取代相同位置中的 Version 7.0.1

單一階段

Version 7.5 取代不同位置中的 Version 7.0.1

並列

Version 7.5 並排 Version 7.0.1

多階段

動作

setmqinst

setmqinst 使 Version 7.5 安裝成為主要安裝。 IBM WebSphere MQ 鏈結程式庫的符號鏈結會插入 /usr/lib中。

沒有 Version 7.5 安裝可以是主要安裝,因為已安裝 Version 7.0.1

沒有其他配置動作

程式庫載入正常運作。

程式庫載入可以運作,即使沒有將 Version 7.5 安裝設為主要,因為程式庫安裝在 /opt/mqm/lib 中,且應用程式是以鏈結選項 -rpath=/opt/mqm/lib 建置。

程式庫載入正常運作。

程式庫載入可以運作,因為安裝是主要的,且應用程式是使用鏈結選項 -rpath=/usr/lib來建置。

媒體庫載入會繼續正確地使用 Version 7.0.1 ,沒有任何項目可以使用 Version 7.5

setmqenv,不設定 -k-l 選項。

程式庫載入正常運作。

setmqenv 是不必要的。 程式庫載入可以運作,因為程式庫安裝在 /opt/mqm/lib 中,且應用程式是使用鏈結選項 -rpath=/opt/mqm/lib來建置。

程式庫載入正常運作。

setmqenv 是不必要的。 程式庫載入可以運作,因為安裝是主要的,且應用程式是使用鏈結選項 -rpath=/usr/lib來建置。

媒體庫載入會繼續正確地使用 Version 7.0.1 ,沒有任何項目可以使用 Version 7.5

setmqenv,並設定 -k-l 選項。

程式庫載入正常運作。

程式庫載入適用於 Version 7.0.1Version 7.5

已載入正確的 Version 7.0.1 ,因為 Version 7.5 程式庫會為尚未從 Version 7.0.1移轉的佇列管理程式載入 Version 7.0.1 程式庫。

作業系統會尋找 setmqenv所設定的 IBM WebSphere MQ 媒體庫位置。 setmqenv 會將位置新增至 LD_LIBRARY_PATH1。 在應用程式中設定的路徑之前,會先搜尋 LD_LIBRARY_PATH ,或在預設搜尋路徑中搜尋路徑。 並非所有應用程式都可以使用 LD_LIBRARY_PATH來載入程式庫。 在此情況下,只有在磁帶庫位置為 /opt/mqm/lib/usr/lib 時,應用程式才會運作。

程序

識別作業系統將從中載入 IBM WebSphere MQ 程式庫的 Version 7.5 安裝:
  • 如果您在伺服器上有多個要載入的 Version 7.5 安裝架構, IBM WebSphere MQ 會檢查載入程式庫的來源安裝架構是否為與應用程式呼叫之任何佇列管理程式相關聯的安裝架構。 如果載入錯誤的程式庫, IBM WebSphere MQ 會載入正確的程式庫。 必須只為所有 IBM WebSphere MQ應用程式配置一個執行時期環境。
  • 一般選擇是設定主要安裝。 將安裝設為 /usr/libIBM WebSphere MQ 程式庫的主要工作區符號鏈結。 遵循 Version 6.0Version 7.0 指示建置的應用程式具有指向 /usr/lib的明確鏈結。 /usr/lib 也通常位於預設程式庫搜尋路徑中。
  • 如果您已將 Version 7.0.1 安裝升級至 Version 7.5,則 Version 7.0.1 安裝架構的鏈結路徑現在會指向 Version 7.5 安裝架構。 具有 Version 7.0.1 安裝架構的固定鏈結路徑的應用程式現在會載入 Version 7.5 程式庫。 然後,它們會切換至與它們所連接之任何佇列管理程式相關聯的安裝。
  • 如果您重建應用程式,它必須鏈結至 Version 7.5 安裝架構。
  • 如果您在 AIX上設定 LD_LIBRARY_PATHLIBPATH ,則必須檢查應用程式是否能夠使用 LD_LIBRARY_PATH。 基於安全理由, setuidsetgid、應用程式或以其他方式建置的應用程式可能會忽略 LD_LIBRARY_PATH

下一步

如果您新增進一步的 Version 7.5 安裝,且已選擇將任何主要安裝設為主要安裝,則必須決定要將哪個安裝設為主要安裝。 只要應用程式從其中一個 Version 7.5 安裝 (例如主要安裝) 載入 IBM WebSphere MQ 程式庫,它們就可以連接至與任何其他 Version 7.5 安裝相關聯的佇列管理程式。

AIX®上的 1 LIBPATH 。 在 HP-UX LD_LIBRARY_PATH 上設定,而不是 SHLIB_PATH