|MQSeries 功能集由 DB2 UDB 版本 7.2 提供,可讓 SQL 陳述式包括傳訊作業。 |這表示此支援可使用於以任何支援語言撰寫的應用程式,例如,使用任何資料庫介面的 C、Java、SQL。下列顯示的所有範例均在 SQL 中。 |可以用所有標準方式,從其他程式設計語言使用此 SQL。 |上述的所有 MQSeries 傳訊樣式都已支援。 |有關 MQSeries 功能的詳細資訊,請參閱「版本注意事項」的 SQL Reference 一節。
|在基本架構中,MQSeries 伺服器是位在與 DB2 一起的資料庫伺服器機器中。 |MQSeries 功能安裝在 DB2上,並提供對 MQSeries 伺服器的存取權限。 |DB2 從屬站可位在可存取 DB2 Server 的任何機器上。 |多個從屬站可同時透過資料庫存取 MQSeries 功能。 |透過提供的功能,DB2 從屬站可在 SQL 陳述式內執行傳訊作業。 |這些傳訊作業可讓 DB2 應用程式在它們之間通信,或與其他 MQSeries 應用程式通信。
|enable_MQFunctions 指令是用來啟用 MQSeries 功能的 DB2 資料庫。它將自動建立簡式預設架構,從屬站應用程式會使用該架構,不需要管理動作。 |如需說明,請參閱20.6, enable_MQFunctions與20.7, disable_MQFunctions。 預設架構提供應用程式設計師一個快速啟動的方法,及一個更簡易的開發介面。 |若有需要,可增加架構其他的功能。
|範例 1:若要使用預設架構來傳送簡式訊息,SQL 陳述式如下:
|VALUES DB2MQ.MQSEND('simple message')
|這會將訊息 simple message 傳送至 MQSeries 佇列管理程式及預設架構指定的佇列。
|MQSeries 的「應用程式傳訊介面 (AMI)」,在傳訊活動及指定那些活動的傳送方式之定義之間,提供清楚的隔離。這些定義保留在外部儲存庫檔案中,並使用 AMI 管理工具來管理。這可讓 AMI 應用程式容易發展並維護。DB2 提供的 MQSeries 功能是以 AMI MQSeries 介面為依據。AMI 支援外部架構檔的使用,該檔稱為「AMI 儲存庫」,以儲存架構資訊。 |預設架構包括 MQSeries AMI 儲存庫架構,以使用 DB2。
|MQSeries AMI 的兩個主要概念,服務程式點及原則,被轉遞至 DB2 MQSeries 功能中。 |服務程式點是邏輯終點,即訊息可能傳送或接收的點。 在 AMI 儲存庫中,每一個服務程式點是以 MQSeries 佇列名稱及佇列管理程式來定義。 |原則定義服務程式選項的品質,其應使用於給定的傳訊作業。 |主要的服務程式品質包括訊息優先順序及持續性。 |提供預設服務程式點及原則定義,且可能由發展者使用,以進一步簡化應用程式。 |範例 1 可以下列方式重寫,以明確地指定預設服務程式點及原則名稱:
|範例 2:
|VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY', 'simple message')
|佇列可能由伺服器的一或多個應用程式服務,而佇列及應用程式即常駐於該伺服器中。 |在許多架構中,多重佇列將被定義為支援不同的應用程式及目的。 |因為這個理由,在進行 MQSeries 要求時,經常定義不同的服務程式點是很重要的。 |在下列範例中有說明:
|範例 3:
|VALUES DB2MQ.MQSEND('ODS_Input', 'simple message')
|
|MQSeries 提供訊息作業及資料庫作業的能力,以在單一工作單元中結合,作為被保護交易。 |Unix 及 Windows 上的 MQSeries 功能原本不支援此功能。
|使用傳送或接收函數時,類型 VARCHAR 的最大訊息長度是 4000 個字元。在傳送或接收 CLOB 類型的訊息時, |最大長度是 1 MB。這也是使用 MQPublish 來公佈訊息的訊息大小上限。
|在使用 CLOB 訊息與 VARCHAR 訊息時,有時需要不同的函數。 |通常,MQ 函數的 CLOB 版本會使用與其副本相同的語法。 |唯一的差別是其名稱在結尾處有字元 CLOB。例如,MQREAD 的 CLOB 等於 MQREADCLOB。如需這些函數的詳細列示, |請參閱42.5.3, CLOB data now supported in MQSeries functions。
|您可在「MQSeries 應用程式傳訊介面手冊」的附錄 B 中,找到 MQSeries 功能傳回的回覆碼。