IBM® WebSphere® Message Broker(后面简称为 Message Broker)使用 ESQL、Java 编程、Database 节点和 Mapping 节点与各种数据库交互。您可以使用 ESQL、Database 节点和 Mapping 节点从 WebSphere Message Broker 访问数据库存储过程。本文通过两个场景展示如何从 Message Broker 访问 DB2 存储过程。 Credit Debit 场景展示如何使用 ESQL 从 Message Broker 访问 DB2 存储过程,Employee Information Retrieval 场景展示如何使用 Mapping 节点从 Message Broker 访问 DB2 存储过程。
要更好地利用本文,则应该拥有一定的 Message Broker、WebSphere MQ 和 DB2 经验。要使用本文中的场景,请在本文的结尾部分 下载 developer_artifacts.zip。此外,您还应该安装下列产品:
- WebSphere Message Broker Runtime V7
- WebSphere Message Broker Toolkit V7
- WebSphere MQ V7
- DB2 V9.7
使用 ESQL 从 WebSphere Message Broker 访问 DB2 存储过程:Debit Credit 场景
- 在 DB2 中,选择 Open all programs => IBM DB2 => DB2COPY1 => Command Line Tools => Command Line Processor。
- 创建 SAVG_ACC 数据库:
db2 create database SAVG_ACC。 - 在 SAVG_ACC 数据库中创建表和过程:使用下载文件中的 setupSavingsAccount.sql,执行命令
db2 -vf setupSavingsAccount.sql:
清单 1. setupSavingsAccount.sql 文件内容
connect to SAVG_ACC
drop table "DB2SCHEMA".SAVINGS_ACCOUNT
create table "DB2SCHEMA".SAVINGS_ACCOUNT("ACCOUNT_NO" BIGINT NOT NULL,
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE, PRIMARY KEY(ACCOUNT_NO))
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100003,'JOHN',25990.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100004,'PETER',75125.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100005,'ANDREW',72500.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100006,'MARY',55000.00)
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT VALUES(100007,'DAVID',69800.00)
drop table "DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION
create table "DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION("ACCOUNT_NO" BIGINT NOT NULL,
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE,"TRANSACTION_AMOUNT" DOUBLE,
"TRANSACTION_STATUS" VARCHAR(50))
drop procedure "DB2SCHEMA".update_savings_account
CREATE PROCEDURE "DB2SCHEMA".update_savings_account(IN saccount_no INT,IN
saccount_name CHAR(50), IN amount FLOAT,IN tran CHAR(10), OUT balance FLOAT,
OUT status CHAR(10)) LANGUAGE SQL BEGIN DECLARE SQLSTATE CHAR(5);
DECLARE acc_no INT; DECLARE acc_name CHAR(50); DECLARE bal FLOAT; DECLARE stat CHAR(10);
DECLARE not_found CONDITION FOR SQLSTATE '02000'; DECLARE c1 CURSOR FOR SELECT
ACCOUNT_NO, ACCOUNT_NAME , BALANCE FROM "DB2SCHEMA".SAVINGS_ACCOUNT WHERE
ACCOUNT_NO = saccount_no AND ACCOUNT_NAME = saccount_name; DECLARE EXIT HANDLER FOR
not_found SET stat = 'NOT FOUND'; Open c1; Fetch c1 into acc_no,acc_name,bal;
if (tran = 'DEBIT') then if ( amount < bal) then SET bal = bal - amount ;
UPDATE "DB2SCHEMA".SAVINGS_ACCOUNT SET BALANCE = bal WHERE ACCOUNT_NO = saccount_no
AND ACCOUNT_NAME = saccount_name; SET stat = 'SUCCESS' ;INSERT into "DB2SCHEMA".
SAVINGS_ACCOUNT_TRANSACTION values (acc_no,acc_name,bal,amount,
'TRANSACTION COMPLETED SUCCESSFULLY');else SET stat = 'FAILURE' ;INSERT into
"DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION values (acc_no,acc_name,bal,amount,
'TRANSACTION FAILED - INSUFFICIENT FUNDS'); end if; elseif (tran = 'CREDIT')
then SET bal = bal + amount ; UPDATE "DB2SCHEMA".SAVINGS_ACCOUNT SET BALANCE = bal
WHERE ACCOUNT_NO = saccount_no AND ACCOUNT_NAME = saccount_name; SET stat = 'SUCCESS';
INSERT into "DB2SCHEMA".SAVINGS_ACCOUNT_TRANSACTION values (acc_no,acc_name,
bal,amount,'TRANSACTION COMPLETED SUCCESSFULLY'); end if; SET balance = bal;
SET status = stat;END Disconnect SAVG_ACC
|
- 创建 LOAN_ACC 数据库:
db2 create database LOAN_ACC。 - 在 LOAN_ACC 数据库中创建表和过程:使用下载文件中的 setupLoanAccount.sql,执行命令
db2 -vf setupLoanAccount.sql:
清单 2. setupLoanAccount.sql 文件内容
connect to LOAN_ACC
drop table "DB2SCHEMA".LOAN_ACCOUNT
create table "DB2SCHEMA".LOAN_ACCOUNT("ACCOUNT_NO" BIGINT NOT NULL,
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE, PRIMARY KEY(ACCOUNT_NO))
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50005,'JOHN',2525000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50006,'PETER',1375000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50007,'ANDREW',237000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50008,'MARY',755000.00)
INSERT into "DB2SCHEMA".LOAN_ACCOUNT VALUES(50009,'DAVID',345000.00)
drop table "DB2SCHEMA".LOAN_ACCOUNT_TRANSACTION
create table "DB2SCHEMA".LOAN_ACCOUNT_TRANSACTION("ACCOUNT_NO" BIGINT NOT NULL,
"ACCOUNT_NAME" VARCHAR(50) , "BALANCE" DOUBLE,"TRANSACTION_AMOUNT" DOUBLE,
"TRANSACTION_STATUS" VARCHAR(50))
drop procedure db2schema.update_loan_account
CREATE PROCEDURE db2schema.update_loan_account(IN laccount_no INT,IN laccount_name
CHAR(50), IN amount FLOAT, OUT balance FLOAT , OUT status CHAR(10)) LANGUAGE SQL
BEGIN DECLARE SQLSTATE CHAR(5); DECLARE acc_no INT; DECLARE acc_name CHAR(50); DECLARE
bal FLOAT; DECLARE stat CHAR(10);DECLARE not_found CONDITION FOR SQLSTATE '02000';
DECLARE c1 CURSOR FOR SELECT ACCOUNT_NO, ACCOUNT_NAME , BALANCE FROM "DB2SCHEMA".
LOAN_ACCOUNT WHERE ACCOUNT_NO = laccount_no AND ACCOUNT_NAME = laccount_name;
DECLARE EXIT HANDLER FOR not_found SET stat = 'NOT FOUND'; Open c1;
Fetch c1 into acc_no,acc_name,bal; if ( amount < bal) then SET bal = bal - amount ;
UPDATE "DB2SCHEMA".LOAN_ACCOUNT SET BALANCE = bal WHERE ACCOUNT_NO = laccount_no;
SET stat = 'SUCCESS' ; INSERT into "DB2SCHEMA".LOAN_ACCOUNT_TRANSACTION values
(laccount_no,laccount_name,bal,amount,'TRANSACTION COMPLETED SUCCESSFULLY');
else SET stat = 'FAILURE'; end if; SET balance = bal; SET status = stat;
END Disconnect LOAN_ACC
|
- 使用以下命令创建一个 Queue Manager QM:
crtmqm QM。 - 启动 Queue Manager QM:
strmqm QM。 - 在 Queue Manager QM 中创建一些队列:使用下载文件中的 queues.def,执行命令
runmqsc QM < queues.defs:
清单 3. queues.defs 文件内容delete qlocal(SAVINGS_TO_LOAN_IN) define qlocal(SAVINGS_TO_LOAN_IN) delete qlocal(SAVINGS_TO_LOAN_OUT) define qlocal(SAVINGS_TO_LOAN_OUT) delete qlocal(SAVINGS_TO_LOAN_FAILURE) define qlocal(SAVINGS_TO_LOAN_FAILURE)
- 在 WebSphere Message Broker,选择 Open All Programs => IBM WebSphere Message Broker => Command Console。
- 使用以下命令创建一个 Broker BROKER:
mqsicreatebroker BROKER -i <userid> -a <password> -q QM。 - 启动代理 BROKER:
mqsistart BROKER。 - 选择 Open All Programs => IBM WebSphere Message Broker Toolkit => IBM WebSphere Message Broker Toolkit 7.0 => WebSphere Message Broker Toolkit 7.0。
- 从文末的下载文件中获取项目交换文件 DebitCredit.zip,并将其导入 Toolkit:选择 File => Import => Other => Project Interchange:
图 1. DebitCreditFlow.msgflow

- SAVINGS_TO_LOAN_IN MQInput 节点获取来自 SAVINGS_TO_LOAN_IN MQ 队列的消息。
- 如果帐号正确,则提供帐户名称且存款帐户有足够的余额,TransferLoanAmountFromSavings 计算节点会将存款余额转入借款帐户。
- 如果交易成功,成功消息被传播到 SAVINGS_TO_LOAN_OUT MQOutput 节点,该节点将消息放在 SAVINGS_TO_LOAN_OUT MQ 队列中。
- 如果交易失败,失败消息被传播到 SAVINGS_TO_LOAN_FAILURE MQOutput 节点,后者将消息放在 SAVINGS_TO_LOAN_FAILURE MQ 队列上。
清单 4. 存储过程调用和 DebitCreditFlow.esql 文件中的过程定义
CALL update_savings_account( savings_acc_no, acc_name , amount ,transaction,
balance, stat) IN Database.SAVG_ACC.DB2SCHEMA;
CALL update_loan_account( loan_acc_no, acc_name , amount ,
balance,stat) IN Database.LOAN_ACC.DB2SCHEMA;
CREATE PROCEDURE update_savings_account(IN account_no INT, IN account_name CHAR,
IN amount FLOAT, IN transaction CHAR, OUT balance FLOAT, OUT status CHAR)
LANGUAGE DATABASE EXTERNAL NAME "update_savings_account";
CREATE PROCEDURE update_loan_account(IN account_no INT, IN account_name CHAR,
IN amount FLOAT, OUT balance FLOAT, OUT status CHAR) LANGUAGE DATABASE
EXTERNAL NAME "update_loan_account";
|
- 在 Message Broker Application Development Perspective 中,打开 Brokers 视图。
- 右键单击 BROKER,然后选择 New execution group,输入
DebitCredit。 - 打开 DebitCreditFlow_deploy.mbtest。
- 单击 Send message。
- 选择执行组 DebitCredit 并单击 Finish。
按照该流程处理输入消息,然后系统会显示输出消息:
- 在 SAVG_ACC 数据库中,存储过程 update_savings_account 已更新 db2schema.savings_account 和 db2schema.savings_account_transaction 表。
- 在 LOAN_ACC 数据库中,存储过程 update_loan_account 已更新 db2schema.loan_account 和 db2schema.loan_account_transaction 表。
测试文件 DebitCreditFlow_test.mbtest 提供了一些用来测试成功和失败场景的样例消息。
- 打开 DebitCreditFlow_test.mbtest。
- 选择 Enqueue,然后单击 Send message。
- 选择 Dequeue,然后单击 Get message。
- 用于配置 SAVG_ACC 数据库:
setupSavingsAccount.sql - 用于配置 LOAN_ACC 数据库:
setupLoanAccount.sql - 用于创建 WebSphere MQ 队列:
queues.defs - 消息流项目:
DebitCredit.zip
使用 Mapping 节点从 WebSphere Message Broker 访问 DB2 存储过程:Employee Information Retrieval 场景
- 选择 Open All Programs => IBM DB2 => DB2COPY1 => Command Line Tools => Command Line Processor。
- 创建 EMPLOYEE 数据库:
db2 create database EMPLOYEE。 - 在 EMPLOYEE 数据库中创建表和过程:使用下载文件中的 setupEmployee.sql,执行命令
db2 -vf setupEmployee.sql:
清单 5. setupEmployee.sql 文件内容
connect to EMPLOYEE
drop table "DB2SCHEMA".PERSONAL_DETAILS
create table "DB2SCHEMA".PERSONAL_DETAILS(EMPNAME VARCHAR(25) NOT NULL,
EMPNO BIGINT NOT NULL,AGE INT, SEX VARCHAR(10),MARITAL_STATUS VARCHAR(10),
NATIONALITY VARCHAR (20), PRIMARY KEY(EMPNO))
INSERT into "DB2SCHEMA".PERSONAL_DETAILS
VALUES('SAM',11111,25,'MALE','SINGLE','AMERICAN')
INSERT into "DB2SCHEMA".PERSONAL_DETAILS
VALUES('ALEX',22222,45,'MALE','MARRIED','BRITISH')
INSERT into "DB2SCHEMA".PERSONAL_DETAILS
VALUES('LAURA',33333,22,'FEMALE','SINGLE','INDIAN')
drop table "DB2SCHEMA".EMPLOYMENT_DETAILS
create table "DB2SCHEMA".EMPLOYMENT_DETAILS(EMPNAME VARCHAR(25) NOT NULL,
EMPNO BIGINT NOT NULL, TYPE VARCHAR(15), DEPT VARCHAR(15), YEARS_OF_EXP FLOAT,
CATEGORY VARCHAR(2),PRIMARY KEY(EMPNO))
INSERT into "DB2SCHEMA".EMPLOYMENT_DETAILS
VALUES('SAM',11111,'REGULAR','SALES',4.2,'B')
INSERT into "DB2SCHEMA".EMPLOYMENT_DETAILS
VALUES('ALEX',22222,'PARTTIME','HR',19,'E')
INSERT into "DB2SCHEMA".EMPLOYMENT_DETAILS
VALUES('LAURA',33333,'REGULAR','MARKETING',1,'A')
drop table "DB2SCHEMA".PAYROLL_DETAILS
create table "DB2SCHEMA".PAYROLL_DETAILS(EMPNAME VARCHAR(25) NOT NULL,
EMPNO BIGINT NOT NULL,SALARY DOUBLE, HRA DOUBLE,CONVEYENCE DOUBLE, RETIRALS DOUBLE,
OTHER_BENEFITS DOUBLE, PRIMARY KEY(EMPNO))
INSERT into "DB2SCHEMA".PAYROLL_DETAILS
VALUES('SAM',11111,28000.00,7000.00, 1600.00,2000.00,0.0)
INSERT into "DB2SCHEMA".PAYROLL_DETAILS
VALUES('ALEX',22222,75000.00,18000.00,2400.00,10000.00,0.00)
INSERT into "DB2SCHEMA".PAYROLL_DETAILS
VALUES('LAURA',33333,15000.00,3500.00,800.00,1000.00,0.0)
drop procedure db2schema.retrieve_employee_details
CREATE PROCEDURE db2schema.retrieve_employee_details(INOUT emp_name CHAR(25),
INOUT emp_no INT, OUT age INT, OUT sex CHAR(10) , OUT marital_status CHAR(10),
OUT nationality CHAR(20), OUT type CHAR(15), OUT dept CHAR(15), OUT exp FLOAT,
OUT cat CHAR(2),OUT salary DOUBLE,OUT hra DOUBLE, OUT convey DOUBLE, OUT
retirals DOUBLE, OUT benefits DOUBLE )LANGUAGE SQL BEGIN DECLARE SQLSTATE CHAR(5);
DECLARE ben DOUBLE;DECLARE not_found CONDITION FOR SQLSTATE '02000';
DECLARE c1 CURSOR FOR SELECT AGE,SEX,MARITAL_STATUS,NATIONALITY FROM "DB2SCHEMA".
PERSONAL_DETAILS WHERE EMPNAME = emp_name AND EMPNO = emp_no; DECLARE c2
CURSOR FOR SELECT TYPE,DEPT,YEARS_OF_EXP,CATEGORY FROM "DB2SCHEMA".EMPLOYMENT_DETAILS
WHERE EMPNAME = emp_name AND EMPNO = emp_no;DECLARE c3 CURSOR FOR
SELECT SALARY,HRA,CONVEYENCE,RETIRALS,OTHER_BENEFITS FROM "DB2SCHEMA".PAYROLL_DETAILS
WHERE EMPNAME = emp_name AND EMPNO = emp_no;DECLARE EXIT HANDLER FOR
not_found SIGNAL SQLSTATE '20000' SET MESSAGE_TEXT = 'Employee Number not found';
Open c1; Fetch c1 into age,sex,marital_status,nationality;Open c2; Fetch c2
into type,dept,exp,cat; Open c3; Fetch c3 into salary,hra,convey,retirals,benefits;
if (cat ='A') then SET benefits=2000.00; elseif (cat ='B') then SET benefits=3000.00;
elseif (cat ='C') then SET benefits=4000.00;
elseif (cat ='D') then SET benefits=5000.00;
elseif (cat ='E') then SET benefits=6000.00;
else SET benefits=1000.00;end if; SET ben = benefits ;UPDATE "DB2SCHEMA".
PAYROLL_DETAILS SET OTHER_BENEFITS = ben WHERE EMPNAME = emp_name AND EMPNO = emp_no;END
Disconnect EMPLOYEE
|
- 创建 MASTER 数据库:
db2 create database MASTER。 - 在 MASTER 数据库中创建表:使用下载文件中的 setupMaster.sql,执行命令
db2 -vf setupMaster.sql:
清单 6. setupMaster.sql 文件内容
connect to MASTER drop table "DB2SCHEMA".MASTER_TABLE create table "DB2SCHEMA".MASTER_TABLE(EMPNAME VARCHAR(25) NOT NULL, EMPNO BIGINT NOT NULL,AGE INT, SEX VARCHAR(10),MARITAL_STATUS VARCHAR(10),NATIONALITY VARCHAR (20),TYPE VARCHAR(15), DEPT VARCHAR(15), YEARS_OF_EXP FLOAT, CATEGORY VARCHAR(2), SALARY DOUBLE, HRA DOUBLE,CONVEYENCE DOUBLE, RETIRALS DOUBLE, OTHER_BENEFITS DOUBLE, PRIMARY KEY(EMPNO)) disconnect MASTER |
- 在命令提示符下,按照 Debit Credit 场景的 设置 WebSphere MQ 中的描述创建和启动队列管理器 QM。
- 在队列管理器 QM 中创建队列:使用下载文件中的 queues_emp.def,执行命令
runmqsc QM < queues_emp.defs:
清单 7. queues_emp.defs 文件内容delete qlocal(EMP_IN) define qlocal(EMP_IN) delete qlocal(EMP_OUT) define qlocal(EMP_OUT)
- 按照 Debit Credit 场景的 设置 WebSphere Message Broker 中的描述创建和启动 Broker BROKER。
- 选择 Open All Programs => WebSphere Message Broker Toolkit => WebSphere Message Broker Toolkit 7.0 => WebSphere Message Broker Toolkit 7.0。
- 将下列项目交换文件从下载文件导入 Message Broker Toolkit:
EmployeeDB.zip, Master.zip, EmployeeMessage.zip, Employee.zip。
图 2. Employee.msgflow

EMP_IN MQInput 节点从 EMP_IN MQqueue 获取消息。RetrieveEmployeeDetails_UpdateMasterTable 从各种表中获取员工详细信息,基于他们的级别向其提供一定的福利,然后在 MASTER 数据库的 MASTER_TABLE 中输入员工信息。完成的员工信息被传播到 EMP_OUT Output 节点,该节点将消息放在 EMP_OUT 队列中。
图 3. Employee_RetrieveEmployeeDetails.msgmap

消息 Employee 和存储过程 retrieve_employee_details 被添加为源,消息 Employee 和插入表 MASTER_TABLE 被添加为目标。而消息中的 EmployeeName 和 EmployeeNo 将作为参数传递给存储过程。存储过程 retrieve_employee_details 从 PERSONAL_DETAILS、EMPLOYMENT_DETAILS 和 PAYROLL_DETAILS 表中获取员工详细信息。PAYROLL_DETAILS 表中的 OTHER_BENEFITS 字段将根据级别进行更新。存储过程中的字段会映射到 Message Employee 和 MASTER_TABLE 中的字段。而完成的员工信息将在 MASTER DATABASE 的 MASTER_TABLE 中更新,然后作为一条输出消息发出。
测试 Employee Information Retrieval 场景
- 在 Message Broker Application Development Perspective 中,打开 Brokers 视图。
- 右键单击 BROKER,选择 New execution group,然后输入
Employee。 - 打开 Employee.mbtest。
- 单击 Send message。
- 选择执行组 Employee 并单击 Finish。
按照该流程处理输入消息,然后系统会显示输出消息。
- 用于配置 EMPLOYEE 数据库:
setupEmployee.sql - 用于配置 MASTER 数据库:
setupMaster.sql - 用于创建 WebSphere MQ 队列:
queues_emp.defs - Database Definition 项目:
EmployeeDB.zip - Database Definition 项目:
Master.zip - Message Set 项目:
EmployeeMessage.zip - Message Flow 项目:
Employee.zip
本文的两个场景展示了如何使用 ESQL 和 Mapping 节点从 WebSphere Message Broker 访问 DB2 存储过程。在 Debit Credit 场景中,帐户详细信息将传递到 DB2,所有数据库操作都在数据库中执行。在 Employee Information Retrieval 场景中,存储过程检索了各种表中的员工信息。
| 描述 | 名字 | 大小 | 下载方法 |
|---|---|---|---|
| 代码样例 | developer_artifacts.zip | 40 KB | HTTP |
- WebSphere Message Broker 资源
- WebSphere Message Broker V7 信息中心
一个可访问所有 WebSphere Message Broker V7 文档的 Web 门户,包含关于安装、配置和使用 WebSphere Message Broker 环境的概念、任务和参考信息。 - WebSphere Message Broker 开发人员资源页面
这些资源可以帮助您使用 WebSphere Message Broker 实现连通性,进行统一数据转换,并集成完全不同的服务、应用程序和平台进行企业级,从而促进您实现自己的 SOA。 - WebSphere Message Broker 产品页面
产品说明、产品新闻、培训信息、支持信息等。 - 下载 WebSphere Message Broker V7 免费试用版
WebSphere Message Broker V7 是一个 ESB,针对异构 IT 环境中的通用连通性和转换,用于将业务事件生成的信息和数据实时分发给企业内外的人员、应用程序和设备。 - WebSphere Message Broker 文档库
WebSphere Message Broker 规范和手册。 - WebSphere Message Broker 论坛
找到您的技术问题的答案,与其他 WebSphere Message Broker 用户分享您的专有技术。 - WebSphere Message Broker 支持页面
一个支持问题及其解决方案的可搜索数据库,包含下载、修复程序、问题跟踪等。
- WebSphere Message Broker V7 信息中心
- WebSphere MQ 资源
- WebSphere MQ V7 信息中心
一个可访问所有 WebSphere MQ V7 文档的 Web 门户,包含关于安装、配置和使用您的 WebSphere MQ 环境的概念、任务和参考信息。 - WebSphere MQ 开发人员资源页面
帮助您使用 WebSphere MQ 设计、开发和部署消息传递中间件,以将应用程序、Web 服务和事务集成到几乎任意平台上的技术资源。 - WebSphere MQ 产品页面
产品说明、产品新闻、培训信息、支持信息等。 - WebSphere MQ 文档库
WebSphere MQ 产品手册。 - IBM 红皮书:WebSphere MQ V7 特性和增强
描述消息队列技术的基本概念和优势,还说明了 V7 中的新特性,并提供一个业务场景来展示那些新特性的实际应用。 - WebSphere MQ V7 试用版下载
一个功能齐全的 WebSphere MQ V7.0 免费试用版,试用期为 90 天。 - WebSphere MQ 支持页面
一个支持问题及其解决方案的可搜索数据库,其中包括下载、修复程序、问题跟踪等。 - WebSphere MQ 公共新闻组
这不是一个 IBM 论坛,但您可以从这里获得 WebSphere MQ 技术问题的答案,并与他人分享您的 WebSphere MQ 知识。 - WebSphere MQ SupportPacs
针对 WebSphere MQ 产品系列的可下载代码、文档和性能报告。
- WebSphere MQ V7 信息中心
- WebSphere 资源
- developerWorks WebSphere 开发人员资源
面向使用 WebSphere 产品的开发人员的技术信息和资源。developerWorks WebSphere 提供产品下载、how-to 信息、支持资源以及一个免费技术库,该技术库包含 2000 多篇技术文章、教程、最佳实践、IBM 红皮书和在线产品手册。 - developerWorks WebSphere 应用程序连通性开发人员资源
帮助您构建 WebSphere 应用程序连通性和业务集成解决方案的 how-to 文章、下载、教程、培训、产品信息等资源。 - 最流行的 WebSphere 试用版下载
免费下载关键 WebSphere 产品试用版。 - WebSphere 论坛
特定于产品的论坛,可以在此获得技术问题的答案,并与其他 WebSphere 用户分享您的专业经验。 - WebSphere 按需演示
下载并观看这些自动运行的演示,了解 WebSphere 产品和技术如何帮助您的公司应对快速变化和日益复杂的业务环境。 - developerWorks WebSphere 每周实时通讯
developerWorks 新闻简讯提供了您感兴趣的主题的最新文章和信息。除 WebSphere 以外,还可以选择 Java、Linux、Open source、Rational、SOA、Web 服务和其他主题。立即订阅并设计您的自定义邮件。 - IBM Press 的 WebSphere 相关图书
通过 Barnes & Noble 很方便地完成在线订购。 - WebSphere 相关活动
世界各地面向 WebSphere 开发人员的会议、商贸展览、网络传播和其他活动。
- developerWorks WebSphere 开发人员资源
- developerWorks 资源
- IBM 软件产品试用版下载
免费下载 IBM® DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 产品试用版。 - developerWorks 博客
加入 developerWorks 用户和作者、IBM 编辑和开发人员的谈话。 - developerWorks 技术简介
由 IBM 专家主持的免费技术活动可以帮助您加快学习进度,在最困难的软件项目中取得成功。这些在世界各地举行的活动包括一小时的网络传播、半天到全天的现场大会等。 - developerWorks 播客
收听新颖有趣的软件创新者访谈和讨论。 - IBM Education Assistant
一个多媒体培训模块集合,帮助您更好地理解 IBM 软件产品,更有效地使用它们来满足您的业务需求。
- IBM 软件产品试用版下载

Kavitha Suresh Kumar 是印度班加罗尔 IBM 软件实验室 Service Integration Bus 开发团队的高级软件工程师和开发领导人员。她在 IBM 已工作了 10 年,曾效力于 WebSphere MQ、WebSphere Message Broker 和 Service Integration Bus 团队。除那些产品外,她的专长还包括使用软件工程最佳实践改进产品质量。她拥有印度芭莎瑞尔大学的计算机科学学士学位和甘地国立开放大学 (IGNOU) 的经营管理专业的 MBA 学位。您可以通过 kavisuresh@in.ibm.com 联系 Kavitha。