IBM Message Broker Interview Question and AnswerDifference between Root and Output Root? Root is used in the Database content changing and in Filter node. Output Root is used in the ESQL code for a Compute node that creates a new output message based on the input message Is it possible to set Properties of node apart from right click and setting the properties? Windows à Show View à Basic à Properties 3) Which interface we have to implement when we are going to create an input custom node? MbInputNodeInterface Difference between RAD and ORDINARY deployment? Using Resource adapter deployment, we can reuse the deployment till the server is rebooted Define BROKER, BAR, EXECUTION GROUP, SCADA, and COMPONENTS OF BROKER, WORKBENCH, WORKSPACE, and CMM? BROKER: A broker is a set of execution processes that hosts one or more message flows to route, transform, and enrich inflight messages. BAR: Flows and sets that are to be deployed are packed in it and sent to configuration manager EXECUTION GROUP:An execution group is a named grouping of message flows that have been assigned to a broker. The broker enforces a degree of isolation between message flows in distinct execution groups by ensuring that they execute in separate address spaces, or as unique processes SCADA: The SCADAInput node is used to receive messages from clients that connect to the broker across the WebSphere MQ Telemetry Transport. SCADA device clients use the MQIsdp protocol to send messages, which are converted by the SCADAInput node into a format recognized by WebSphere Message Broker. The node also establishes the processing environment for these messages. COMPONENTS OF BROKER: Broker, Configmgr, User name service. WORKBENCH: WORKSPACE: What is PARSER and difference between PARSER and FORMAT? A Parser is defined as a program that interprets the bit stream of an incoming message and creates an internal representation of it in a tree structure Ex: MRM parser A Format is a physical representation of a message. Ex: XML wire format What is ResetContentDescriptor node? Use the ResetContentDescriptor node to request that the message is reparsed by a different parser What is User name Server and where it is defined? The User Name Server is an optional runtime component that provides authentication of users and groups performing publish/subscribe operations. What is SCHEMA of broker? A broker schema is a symbol space that defines the scope of uniqueness of the names of resources defined within it. The resources are message flows, ESQL files, and mapping files. How can we see the error log files in broker? The Windows Event Viewer is where WebSphere Message Broker writes records to the local system. Default properties of Mqinput node? Property Message Domain Message Set Message Type Message Format Topic M C No No No No No No No No No Yes Default Description The domain that will be used to parse the incoming message. The name or identifier of the message set in which the incoming message is defined. The name of the incoming message. The name of the physical format of the incoming message. The default topic for the input message. Which node is used to change the message in the flow? Compute Node, Filter Node and ResetContentDescriptor. What is the use of commit for connection to Databases? Any work that has been done using the respective data source in a message flow (including any actions taken in the node) is committed regardless of the subsequent success or failure of the message flow Define Correlation names? A correlation name is a field reference that identifies a well-defined starting point in the logical message tree and is used in field references to describe a standard part of the tree format. Functions of ESQL? MQInput node and INPUT node differences? You must use an Input node to provide the in terminal to a subflow. The Input node provides an in terminal for an embedded message flow (a subflow). How many Builtin nodes are there? Categories them? WebSphere Message Broker supplies built-in nodes that you can use to define your message flows. For information about each of these nodes, follow the appropriate link below. The nodes listed here are grouped according to the function that they provide. Input and output MQInput node MQOptimizedFlow node MQOutput node MQGet node MQReply node Publication node MQeInput node MQeOutput node SCADAInput node SCADAOutput node HTTPInput node HTTPReply node HTTPRequest node Real-timeInput node Real-timeOptimizedFlow node Input node Output node JMSInput node JMSOutput node Message manipulation and transformation Compute node Database node DataDelete node Datalnsert node DataUpdate node Extract node JavaCompute node JMSMQTransform node MQJMSTransform node Mapping node Warehouse node XMLTransformation node Collating requests AggregateControl node AggregateReply node AggregateRequest node Decision making Check node Filter node FlowOrder node Label node ResetContentDescriptor node RouteToLabel node TimeoutControl node TimeoutNotification node Validate node Subflow identification Passthrough node Error handling and reporting Throw node Trace node TryCatch node What are the perspectives we have? Administration Perspective Application Development Perspective Debugging Perspective. Java Perspective (MB 6). In which perspective we deploy the flow? Administrator perspective How to create Broker from Command prompt? Using mqsicreatebroker command. Use of Configmanager? To deploy the message flows onto the Broker. What is the uniqueness of MB over ICS? Parallel processing What is EAI? What are those tools? Enterprise Application Integration refers to the integration of one or more applications and processes together. Tools: WBI Message Broker, ICS, WebMethods and Tibco What is the Broker Domain? Group of brokers that coordinate a single configuration manager constitute a Broker Domain What error is going to occur when we didn’t specify the queue name in the MQInput node? The Error message is “Unset mandatory ‘Qname Name’ Property on node ‘MQInput’ “. How to call the method or function in the coding? Using the “CALL” keyword. Performance monitoring tools? WebSphere Application Server , Java Management Extensions (JMX), Functional Testing and Unit Testing? Unità testing with different test cases Functional à testing with the exact input How many objects are required for distribution queuing? QueueManager, SenderChannel, ReceiverChannel, LocalQueue MQ Objects? Queue manager , Send queue ,Receive queue ,Administration queue, Administration queue ,Restart queue ,Spill queue Triggering in MQ? Distribution queuing? Unix Commands? grep, find, sort…etc. Difference between MCA and MQI channels? A message channel connects two queue managers via message channel agents (MCAs). Such a channel is unidirectional. It comprises two message channel agents, a sender and a receiver, and a communication protocol. An MCA is a program that transfers messages from a transmission queue to a communication link, and from a communication link into the target queue.For bidirectional communication you have to define two channel pairs consisting of a sender and a receiver. A Message Queue Interface (MQI) channel connects an MQSeries client to a queue manager in its server machine. Clients don’t have a queue manager of their own. An MQI channel is bidirectional. How to configure MQ? By using runmqsc <Qmanager> command. How will you Test your Flows? Using Debugging Mode, Trace Node ..etc.. MQ-triggering, queues, initiation q, deadletter q, process definition, etc.? What workflow will do? A message Flow is a sequence of processing steps that execute in the broker when an input message when an input message is received. MQSI Server, MQSI Client difference? How to connect these two through command prompt? MQSeries Client A client workstation does not have a queue manager of its own. It shares a queue manager in a server with other clients. All MQSeries objects, such as queues, are in the server.Since the connection between client and server is synchronous, the application cannot work when the communication is broken. You could refer to such workstations as “slim” clients. MQSeries Server A workstation can be a client and a server. A server is an intermediate node between other nodes. It serves clients that have no queue manager and manages the message flow between its clients, itself and other servers. In addition to the server software you may install the client software, too. This configuration is used in an application development environment Connection: strmqm QMA start runmqlsr -t tcp -m QMA -p 1414 runmqsc start channel (QMA.QMB) end How will you install and configure CVS & How will you use in MB? Double-click the Windows cvsnt-2.0.5.exe file to launch the installer. Displays CVS Setup window appears Select the option to accept the licence agreement and click Next. Select Destination Directory screen, the default installation location is set to Workspace\cvsnt. If you have enough space to install to this location click Next. The next screen asks you to choose the components that you wish to install, Make your selections and click Next. The Typical installation option already contained all of the components and protocols that we needed. The next screen asks where the program should appear on the Start menu. Accept the default and click Next. Ensure that both the check boxes to install the CVS services The Ready to Install screen lists the options you have selected. Click Install to start the installation. A progress bar appears while the files are copied. Finally, click Finish when the completion window appears. Reboot the system. The installation of the CVS server is now complete. Event Monitoring? (Performance monitoring–> Queue depth event)? Q Depth High,Q Depth Low,Q Depth Full How will we use a Cobol copybook in MB? You can populate your message set with message definitions by importing COBOL copybook files, using either the New Message Definition File wizard or the mqsicreatemsgdefs command line utility. Types of messages? MRM XML XMLNS XMLNSC JMSMap JMSStream MIME BLOB IDOC Deadletter queue cases? Destination Q is full Destination Q doesn’t exist Msg too large Sender is not authorized to use the destination Q How many types of clients in MQ? Two Types à Fat Clients à Slim clients MQ commands? CRTMQM STRMQM DLTMQM ENDMQM To create Queues, listeners, and channels DEFINE QUEUE / CHANNEL DISPLY – To display the queue or channel status Difference between Circular logging and linear logging? Circular logging gives you restart recovery. Linear logging gives you both restart recovery and media recovery. Difference between MQCONN and MQCONNX? MQCONN (MQSTATE, qManagerName) : Connects to a queue manager, which is identified by qManagerName, a string of up to 48 characters. MQSeries sets the connection handle (MQSTATE.hconn) for use in subsequent calls. MQCONNX (MQSTATE, qManagerName, MQCNO): Connects to a queue manager with options that control the way that the call works. The queue manager is identified by qManagerName, a string of up to 48 characters. MQSeries sets the connection handle (MQSTATE.hconn) for use in subsequent calls. Difference between MQPUT and MQPUT1? MQPUT(MQSTATE, MQMD, MQPMO, BUFFER) : Adds a message to the queue. The buffer cannot be more that 32767 bytes, but that restriction does not apply if you are using the EGL add statement. MQPUT1(MQSTATE, MQOD, MQMD, MQPMO, BUFFER): Opens a queue, writes a single message, and closes the queue Can we use MQPUT1 in java? Yes we can use. If we want to perform some operation at receiving application when it receives some message, then what objects are required at the receiving application? Target QM, Target Q, Receiver channel and Listener How to get the depth of a queue? By using MQSC property CURDEPTH What formats MB support? XML, TDS, CWF, EDI, SWIFT Where do you place pass-thru node in message flow? In the sub flows immediate to the input node. Features of Message Broker? Routing, Transformation and Integration What is CVS (Concurrent Version System)? It is a repository that will store the previous versions. Difference between compute and mapping node? In the compute node we can change the headers but in Mapping node we can’t change. Types of Queues in MQ? local queue Remote queue Transmission queue Alias queue Dead letter queue How do you test your message flows and design test case? By using debugging perspective. We can create the Test Case according to the client specification error codes. If new functionalities (new nodes) are added how will you implement in Interface? How to configure Adapters? What are the different ways for giving input without using MQInput node? Custom input nodes Why we are migrating from Web Methods to MB? Advantages of compute node? To construct one or more new output messages. To build a new message using a set of assignment statements. To opy messages between parsers To convert messages from one code set to another To transform messages from one format to another How can you interact with Database using Compute node? Specify in Data Source the name by which the appropriate database is known on the system on which this message flow is to execute. How will you handle errors in Message Flow? By using Debugging perspective, and Trace node. Explain about Pub-Sub? How do you implement MQ pub-sub? Difference between MQ pub-sub and MB pub-sub? The differences in the publish/subscribe support provided by WebSphere MQ and WebSphere Message Broker are described in the following topics: Message formats Streams Stream authority Topics Wildcard characters Default topic routing Retained publications Metatopics Subscription points Content-based filtering Throughput Configuration of JDBC Adapter? Pub/Sub-MQRFH2 Header Settings? Reference: Question number 125. Aggregate nodes? Aggregation nodes are used in fan-out and fan-in process. Fan-out: The initial request to the message flow , representing a collection of related requested items, is split into the appropriate number of individual requests to satisfy the subtasks of the initial request. Fan-in: Replies from the subtasks are combined and merged into a single reply that is returned to the original requester (or another target application) to indicate the completion of the processing. WebSphere Message Broker provides three message flow nodes that support aggregation: AggregateControl AggregateRequest AggregateReply Filter node? To route a message according to message content. Database node? To interact with a database in the specified ODBC data source. You can use specialized forms of this node to: Update values within a database table (the Data Update node) Insert rows into a database table (the Data Insert node) Delete rows from a database table (the Data Delete node) Store the message, or parts of the message, in a warehouse (the Warehouse node) Logical Message Tree? Message Tree Structure? The logical tree structure is the internal (broker) representation of a message. The message tree is a part of the logical message tree in which the broker stores its internal representation of the message body Can we create multiple instances of a message flow? Yes we can. One way is by adding multiple node. For ex. A single message flow can handle DATA received across MQ and Messages that are received across native IP connections. About Resetcontentdescripter node, Label node? Resetcontentdescripter Node: To request that the message is reparsed by a different parser. Label Node: use it in combination with a RouteToLabel node to dynamically determine the route that a message takes through the message flow, based on its content. The RouteToLabel node interrogates the Local Environment of the message to determine the identifier of the Label node to which the message must next be routed. What are the properties of TRACE Node? Property Destination M C Default Description Yes No User The destination of the trace record written by the Trace node. Valid choices are User Trace, File, Local Error Log, and None. No Yes The fully-qualified file name of the file to which to write records. Valid only if Destination is set to File. No No The data that is to be included in the trace record. No No The name of the message catalog from which the error text for the error number of the exception is extracted. The default value (blank) indicates that the message is taken from the message catalog supplied with WebSphere Message Broker. No No 3051 The error number of the message that is written. File Path Pattern Message Catalog Message Number The Description properties of the Trace node are described in the following table. Property Short Description Long Description C No No Default Description A brief description of the node. Text that describes the purpose of the node in the message flow. No No What are the types of TRACES? User trace Service trace. User: used for debugging your applications. It can trace brokers, execution groups, and Deployed message flows. Service: More comprehensive Broker tracing. It starts tracing for workbench, configuration Manager, username server. What is an Execution Group? An execution group is a named grouping of message flows that have been assigned to a broker. The broker enforces a degree of isolation between message flows in distinct execution groups by ensuring that they execute in separate address spaces, or as unique processes What are the types of Trees? Message Tree Environment Tree Local Environment Tree Exception list Tree What is the difference between Environment and Local Environment? The Environment tree is a part of the logical message tree in which you can store information while the message passes through the message flow What is the Role in your Project? Explain your role in the project How to connect Broker in MB? From Broker domain, using ConfigMgr. How to connect to database to the remote system? By doing node catalog and the database catalog. What is the role of configuration manager? Connecting to the broker and to deploy the message flows. How to debug applications in message flow? Using Debugging perspective, User traces What is the content of the configuration manager Repository? It contains the information of the Broker Domain it is related to. Exception Handling in MB? By using Compute node, email node and java compute node. What is the difference between try catch node and throw node? The message routes out from the out terminal of the Try catch node and if any exception is thrown (say, by a throw node),then the try catch node catches it and sends the original message through the catch terminal for error processing In route to label node where we will gave label name, and syntax of the label name? SET OutputLocalEnvironment.Destination.RouterList.DestinationData.labelname=’name of the label to which the message is to be routed ’; Assignment in processing node? How does Message Broker handle a 500 MB input message? What is the difference between hconn and hconnx? Hconn is a handle used to connect to Queue manager in MQCONN and MQCONNX api calls. How will you separate (more number) database exceptions into a different queue? (Mention 2 ways) How will you accept an incoming message if its length and structure are not defined? How do you change a blob to a fixed structure? Using TDS, what properties will you set in the message set for the following input: abc,123|a*xyz,k,55 (i.e., an input message with different delimiters between different data types), input might not be in the same manner every time. Are there any wire formats that MB support other than xml and cwf? Which is good based on performance IF or CASE. Why? CASE In clustering, which queue manager will contain the default full repository? We will be setting the properties at the time of creation of the Queue manager. We are getting 4 different inputs in 4 formats. How will you handle them using single message set without using cwf format? In remote queuing, if the queue on the target queues manager is full, then to which dead letter queue will the message propagate? Target dead letter queue What are the different configuration management tools? Tivoli, Clear case. Functionality of mapping node? Mapping node to construct one or more new messages and populate them with new information, with modified information from the input message, or with information taken from a database. You can modify elements of the message body data, its associated environment, and its exception list. If new functionalities (new nodes) are added how will you implement in Interface? How will you handle CWF and TDS format? By developing message sets and using them in the message flow. How will you trace the errors through command prompt? Mqsiformatlog, Mqsilist, Mqsichangetrace, mqsireadlog and mqsireporttrace How can you validate the XML message in the flow? Using a Message set with the required XML format or by using validate node. How will you set headers in pub-sub? By setting the MQRFH2 headers E.g.: SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2; SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = ‘MQSTR’; SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208; SET OutputRoot.MQRFH2.psc.Command = ‘RegSub’; SET OutputRoot.MQRFH2.psc.Topic = “InputRoot”.”MRM”.”topel”; SET OutputRoot.MQRFH2.psc.QMgrName= ‘DebugQM’; SET OutputRoot.MQRFH2.psc.QName = ‘PUBOUT’; SET OutputRoot.MQRFH2.psc.RegOpt= ‘PersAsPub’; Explain about PROPAGATE and LAST MOVE? The PROPAGATE statement is used to generate multiple output messages in the Compute node. The output messages that you generate can have the same or different content. You can also direct output messages to any of the four alternate output terminals of the Compute node, or to a Label node. The LASTMOVE field function tells you whether the last MOVE function succeeded. Logical Message Tree? Message Tree Structure? The logical tree structure is the internal (broker) representation of a message. The message tree is a part of the logical message tree in which the broker stores its internal representation of the message body Can we create multiple instances of a message flow? Yes by deploying the message flow to different execution groups. How to import COBOLCOPY BOOK or C format? By importing the COBOLCOPY BOOK or C file into the existing project and building a message definition file from this imported structures. What are the properties MQMD and MQRFH2 Headers? MQMD are a must headers and are present from starting to end of the message flow but MQRFH2 are optional and are set according to the business need. What are the properties of TRACE Node? Destination, File Path, Pattern, Message Catalog and Message Number What are the types of TRACES? User trace, service trace, ODBC trace, WebSphere MQ Java Client trace, and Configuration Manager Proxy trace. What are the types of Trees? The input node creates the logical tree, which consists of four sub trees: Message tree Environment tree Local Environment tree Exception List tree What is the difference between Environment and Local Environment? Environment variable’s scope is defined for the whole flow where as the Local Environment variable’s scope is defined for that node and can be passed on to the next node as well. How to connect Broker in MB? Using configuration manager. How to connect to database to the remote system? By ODBC driver name. Exception Handling in MB? By using the following nodes Throw node Trace node Try Catch node What is the difference between try catch node and throw node? Throw node throws an exception where as a try catch node is used to handle the error, which is raised. Difference between Root and Output Root? Both are correlation names. Root is used in nodes which do not create a new output where as Output Root is used in a node which can create a new output node. In route to label node where we will gave label name, and syntax of the label name assignment in processing node? By setting the Local Environment variable Syntax: LocalEnvironment.Destination.Routerlist.DestinationData = ‘Label name’; Define SCADA? The SCADAInput node is used to receive messages from clients that connect to the broker across the WebSphere MQ Telemetry Transport. SCADA device clients use the MQIsdp protocol to send messages, which are converted by the SCADAInput node into a format recognized by WebSphere Message Broker. The node also establishes the processing environment for these messages. Will broker run on AIX system or not? Yes If the comments for CopyEntireMessage() and CopyMessageHeaders() functions are not removed, then what will happen? Functionality of floworder node? FlowOrder node to control the order in which a message is processed by a message flow. The input message is propagated to the first output terminal and the sequence of nodes connected to this terminal process the message. When that message processing is complete, control returns to the FlowOrder node. If the message processing completes successfully, the input message is propagated to the second output terminal and the sequence of nodes connected to this terminal processes the message. Is there any alternative for MQ to use along with MB? No. How to suspend a queue manager in a cluster? In the Navigator view (in the Queue Manager Clusters folder), right-click the queue manager, the click Suspend cluster membership… What happens if a message is sent to a local queue, which is filled, and a remote queue, which is filled? Any difference in them? The message moves to the relevant default deadletter queue Can we give all the format types in a single message set, If so how? YES. How will you declare an array in MB and how will you retrieve the desired value from an array? Two types of representations Dynamic Arrays Structure-field arrays. Dynamic Arrays: Syntax: myDataItem01 CHAR(30)[] { maxSize=5 }; Structure-field arrays: record myRecord01Part 10 name[3]; 20 firstOne CHAR(20); 20 midOne CHAR(20); 20 lastOne CHAR(20); end To retrieve Values: MyRecord01.name.lastOne[2] MyRecord01.lastOne [2] lastOne[2] What are the properties of .bar file and when they are used? The unit of deployment to the broker is the broker archive or bar file.The bar file is a zip-format file which can contain a number of different files: A .cmf file for each message flow. This is a compiled version of the message flow. You can have any number of these files within your bar file. A. dictionary file for each message set dictionary. You can have any number of these files within your bar file. A broker.xml file. This file is called the broker deployment descriptor. You can have only one of these files within your bar file. This file, in XML format, resides in the META-INF folder of the zip file and can be modified using a text editor or shell script. Any number of XML files(.xml) and style sheets (.xsl files) for use with the XMLTransformation node. Any number of JAR files for use with the Java Compute node. As a zip-format archive, the broker archive file can also contain any additional files you need. For example, you might want to include Java source files for future reference. How will you handle an input message with different delimiters between the fields? Using MRM domain What are the advantages of Message broker? Comprehensive monitoring using predefined workspaces that provide statistical information such as Current Message Rates, Current Average Message Time, and Sub-flow Statistics. Comprehensive solution for complex WebSphere MQ environments that enables drill down to problem components Custom workspaces can be tailored for individual job functions What happens when the queue name is not specified in the MQOutput node? Message is backed out. what is the difference between catch terminal and failure terminal in MQInput node? Catch terminal: The output terminal to which the message is routed if an exception is thrown downstream and caught by this node. Failure terminal: failure terminal detects an internal error, it propagates the message to that terminal. The output terminal to which the message is routed if an error occurs. Even if the Validation property is set, messages propagated to this terminal are not validated. What are the differences between MB 5.0 and 6.0? Some additional nodes are added Like Java Compute node. Configuration manager can be created with out referring database. Can be installed and configured on Aix also. How to specify reference keyword in the esql and what is the use of it? Declare ptr REFERENCE TO InputRoot.xml.emp.eno; – Here, ptr refers to a specific field reference About SAP connector? What is the need of transaction mode property in the compute node? The transaction mode for the node. This can beAutomaticorCommit. It is valid only if you have selected a database table for input What are the types of data formats that MB will support? XML,TDS,CWF What is the difference between TDS and CWF? The Tagged/Delimited String format (TDS) is the physical representation of a message that has a number of data elements separated by tags and delimiters. Custom Wire Format (CWF) is the physical representation of a message that is composed of a number of fixed format data structures or elements, which are not separated by delimiters Command used to deploy? Using mqsideploy What should you do before creating the broker and the configuration manager? We have to create the data source name and Queue manager Types of testing? Explain about web services nodes? WebSphere MQ Web Services Transport connects Web services and clients that use the HTTP protocol for messaging A WSDL definition for that service can be imported into a message set using the new WSDL importer. HTTPInput: node to receive Web service requests for processing by a message flowUse the HTTPRequest node to interact with a Web service SET OutputRoot.HTTPResponseHeader = NULL; HTTPReply :node to return a response from the message flow to the Web service client. Select the Ignore Transport Failures check box if you want transport-related failures to be ignored (for example, if the client is disconnected). If you clear the check box, and a transportrelated error occurs, the input message is propagated to the failure terminal. If you clear the check box, you must supply a value for Reply send timeout. Set the Reply send timeout value if you are not ignoring transport failures. This is the length of time that the node waits for an acknowledgment that the client has received the reply. Explain about JMS nodes? JMS Input Node: to receive messages from JMS destinations. The JMSInput node receives and propagates messages with a JMS message tree. You can set the properties of the JMSInput node to control the way that the JMS messages are received. JMS Output Node: to send messages to JMS destinations Process of clustering and what are the advantages of clustering? Grouping up of two or more Queue managers Advantages : load balancing,reduces network traffic Working of XML Transformation node? Used to transform an XML message to another form of XML message, according to the rules provided by an XSL (eXtensible Stylesheet Language) style sheet. You can use node properties. This ensures that the transformation defined by this single style sheet is applied to every message processed by this node. You can use the content of the XML data within the message itself. This transforms the message according to a style sheet that the message itself defines.This behavior is only available for XSL and XML files that are located within a Message Flow project. You can set a value within the LocalEnvironment folder associated with the message. This provides a dynamic choice of style sheet, because you must set this value (in a Compute node) within the message flow after receipt of the message. You can therefore use a variety of inputs to determine which style sheet to use for this message, such as the content of the message data or a value in a database. Configuration of HTTP Input Node? HTTP INPUT Node: In URL Selector, put the path part of the URL from which this node receives Web service requests. Do not give the full URL. Enter the Maximum client wait time timeout interval, as a number of seconds. This is the length of time that the TCP/IP listener that received the input message from the Web service client waits for a response from the HTTPReply node in the message flow. If a response is received within this time, the listener propagates the response to the client. If a response is not received in this time, the listener sends a SOAP Fault message to the client that indicates that its timeout has expired. Select the Fault Format as one of SOAP 1.1, SOAP 1.2 or HTML. If the node is to accept secure HTTP, select the Use HTTPS check box. Select Default in the properties dialog navigator and set values for the properties describing the message domain, message set, message type, and message format that the node uses to determine how to parse the incoming message. In the Message Domain field, select the name of the parser that you are using from the dropdown list. You can choose from: MRM XML XMLNS XMLNSC JMSMap JMSStream IDOC MIME BLOB If you are using the MRM or IDOC parser, select the correct message set from the drop-down list in the Message Set field. This list is populated with available message sets when you select MRM or IDOC as the domain. Leave the Message Set field blank for XML, XMLNS, XMLNSC, JMS, MIME, and BLOB parsers. If you are using the MRM parser, select the correct message from the drop-down list in Message Type. This list is populated with messages that are defined in the message set that you have selected. Leave Message Type blank for XML, XMLNS, XMLNSC, JMS, IDOC, MIME, and BLOB parsers. If you are using the MRM or IDOC parser, Select the format of the message from the drop-down list in the Message Format field. This list includes all the physical formats that you have defined for this message set. Leave the Message Format field blank for XML, XMLNS, XMLNSC, JMS, MIME, and BLOB parsers. Select Validation in the properties dialog navigator if you want the MRM parser to validate the body of messages against the dictionary generated from the message set. (If a message is propagated to the failure terminal of the node, it is not validated.) Select General Message Options in the properties dialog navigator. Parse Timing is, by default, set to On Demand. This causes validation to be delayed until it is parsed by partial parsing. If you change this to Immediate, partial parsing is overridden and everything in the message is parsed and validated, except those complex types with a Composition of Choice or Message that cannot be resolved at the time. If you change this to Complete, partial parsing is overridden and everything in the message is parsed and validated; complex types with a Composition of Choice or Message that cannot be resolved at the time cause a validation failure. Select Description in the properties dialog navigator to enter a short description, a long description, or both. Click Apply to make the changes to the HTTPInput node without closing the properties dialog. Click OK to apply the changes and close the properties dialog. Click Cancel to close the dialog and discard all the changes that you have made to the properties. What is the product called ? This release of IBM WebSphere® Business Integration Brokers sees the renaming of the broker offerings. These products are the successors to MQSeries Integrator (MQSI), WebSphere MQ Integrator (WMQI), WebSphere MQ Integrator Broker (WMQIB) and WebSphere MQ Event Broker (WMQEB). Now – at version v5.0 – we have the WebSphere Business Integration Event Broker as a true subset of WebSphere Business Integration Message Broker. The Event Broker is purely a routing engine, and includes only input, output and publish/subscribe functionality. The Message Broker contains all of the function of Event Broker (including the high performance Realtime transport) but also adds sophisticated message modeling and transformation capabilities. What are the major new features offered by WebSphere Business Integration Brokers, as compared to the previous version? The tooling for the WebSphere Business Integration Brokers is now built on the Eclipse framework. This ensures a common technology and skill set with other WebSphere products. As such, the design and deployment model is different from previous releases. Use of the Eclipse platform has allowed for usability enhancements such as a new Mapping Node, improved and extended samples and much easier versioning. WebSphere Business Integration Event Broker (previously WMQEB) is now a true subset of WebSphere Business Integration Message Broker (previously WMQIB). This means that the high performance WebSphere MQ Realtime Transport is now supported by all the brokers. In addition to this protocol, SOAP over HTTP and multicast publish/subscribe are now supported. Message modeling capabilities have been updated in line with XML schema standards – including increased validation and support for namespaces. The product architecture has been modified to ease integration with the Eclipse platform. Due to this, the configuration manager now purely manages deployment from development to the runtime components. The configuration manager is no longer a repository. Support for the Linux operating system has also been added in this release. Is the use of WebSphere MQ required with the Brokers, and if so what release? WebSphere Business Integration Brokers are supplied with WebSphere MQ v5.3. The Brokers no longer require that message flows be started from WebSphere MQ queues, but we expect that most users will still do so. Message flows can also output WebSphere MQ messages on to queues. WMQ V5.3 is used internally by the Brokers for communicating between the various parts of the product. Most importantly, WebSphere MQ facilities are used by the broker to provide transactional services. The application programs that are sending the messages to the queues to be processed by the Brokers can use any release of WebSphere MQ to populate those queues. Can I use non-MQ protocols to send messages out of the Brokers? You can use WebSphere MQ messages to drive work in and out of the Brokers. Additionally, you can send data both in and out of the Brokers using WebSphere MQ Everyplace, WebSphere MQ Telemetry Transport (previously known as MQIsdp or SCADA), WebSphere MQ Realtime Transport (also known as JMS/IP), WebSphere MQ Web Services Transport (SOAP over HTTP) and (for output only) WebSphere MQ Multicast Transport. Finally, as the Brokers are designed as an extensible framework you can add function to them by writing additional functions which can be plugged-in as a node. One example of an additional node would be a program to take the data flowing through the broker and to send it out using other protocols. Can I use non-MQ protocols to start work in the Brokers? See the question above for other supported protocols. Additionally, the Brokers allow you to write your own input nodes. These allow you to start a message flow. For example, you might write an input node that monitors a database and that uses changes to the database to start a message flow. The input node will have to ensure transactionality using the Brokers and WebSphere MQ facilities. Is there support for WebSphere MQ facilities such as clustering for scaling and failover? The Brokers are, in effect, WebSphere MQ applications. Therefore, they can automatically benefit from new features provided by WebSphere MQ. For example, the queues that the Brokers reads messages from can be clustered WebSphere MQ queues. So if WebSphere MQ clustering were used, it would allow many brokers to be used, each running one or more message flows, thus permitting high performance throughput. If further growth is required, then more processors, with more brokers and more message flows, can be added to the overall system. Furthermore, the ability to run the Brokers on z/OS allows you to take advantage of the power and scalability of that platform. Thus you can scale by upgrading to more powerful processors, as well as by adding more processors. How does WebSphere MQ Workflow link up to the Brokers? WebSphere MQ Workflow is designed to simplify integration across the enterprise by automating business processes involving both people and applications. It is able to drive applications by using WebSphere MQ messages, and therefore in this way it can drive work through the Brokers. Additionally, the Brokers can drive work or responses back through WebSphere MQ Workflow using either the standard MQOutput Node or by writing a custom node to interactively perform a dialogue with WebSphere MQ Workflow. When would I use the Brokers and when would I use WebSphere MQ Workflow? As far as flowing of data is concerned, the Brokers automate message processing and flows within a single unit of work, whereas WebSphere MQ Workflow automates and tracks process flows across multiple units of work (which could span many months). With the Brokers you need to keep track of your application state spanning a number of messages flowing through the broker using database nodes. WebSphere MQ Workflow holds information with respect to the state of the end-to-end process. Both products have rules, but in WebSphere MQ Workflow they are part of a pre-planned process model, and in the Brokers they are dynamically alterable and capable of reacting to events as well as data. WebSphere MQ Workflow routes the original request data with flow control data between application functions, whereas the Brokers flow data between applications, modifying the original data to suit the needs of the target applications. WebSphere MQ Workflow looks at the function of applications to ensure that the end result of the application is achieved whereas the Brokers are concerned more with the data that flows within an application or between applications, so that the applications can produce the required end result. How will the WebSphere Business Integration Adapters work with the Brokers ? The WebSphere BI Adapters provide a set of pre-built adapters, and a framework/toolkit for developing custom adapters. The offering provides a way to enable applications to produce WebSphere MQ messages. The data produced by the adapters is a serialised Business Object, represented in XML. It is possible to export a schema definition of these business objects from the adapters and to import them into the message repository. Messages can then be sent from the adapter to the Brokers, and vice versa When would I use the brokers and when would I use WebSphere InterChange Server? WebSphere Interchange Server is a process integration engine. Its primary purpose is to choreograph interactions between a number of applications. As such, it needs to retain state information and handle concepts such as compensating transactions and dynamic cross referencing. The brokers, on the other hand, purely provide application connectivity services. They generally act as intermediaries between applications, providing fast routing and transformation services. The two products will also work seamlessly with each other – within the WebSphere Business Integration Server, for example. A broker can act as an intermediary to provide application connectivity services between applications and the WebSphere InterChange Server. What databases are supported by the Brokers ? WBIMB uses ODBC to access databases within the message flow. This gives seamless access to databases such as DB2 UDB, SQL Server, Oracle and Sybase. WebSphere MQ also uses XA over ODBC to allow database updates to be included in a transactional unit of work. This will give transactional coordination to databases which support using XA over ODBC. This includes DB2, Oracle, and Sybase. The Brokers are also supplied with a copy of DB2 UDB which is used internally by the product without any need for intervention by the user. The license which is supplied with this database product is a limited license only allowing the use of this instance of DB2 by the Broker itself. How can products like CICS and IMS be accessed using the Brokers ? The brokers access CICS and IMS using the WMQ CICS and IMS bridges. The brokers can be configured to generate MQ messages, using the built-in support to generate the bridge headers, which are then sent to the bridges. Responses are dealt with in a separate flow and aggregate nodes can be used to correlate responses with the original requests. Alternatively to access CICS or IMS from a message flow, one possible way to do this would be to write a node which called a client program for CICS or IMS and built the appropriate call with the structured data flowing through the message flow. The response from the external application could then be passed back into the message flow. These custom written nodes to meet the need of communicating with CICS may be available from Vendors, could be written in-house or as a services contract. There is a CICS Client SupportPac available from the SupportPac web site (http://www4.ibm.com/software/ts/mqseries/txppacs/txpsumm.html). Can I access my existing applications (e.g. COM/DCOM, WebSphere, IIOP etc.) from the Brokers ? The most common way to access any application from the Brokers is to use a message flow as an intermediary between two WebSphere MQ queues, with connectivity to your existing applications provided by WebSphere MQ, possibly in conjunction with an adapter or bridge. If your application is a J2EE application running in an Application Server, then it is common to use the JMS API to access the messaging function of WebSphere MQ.Alternatively, by using a custom written node in a message flow you can build a call to access your existing applications, whether they are COM or DCOM applications or any other architecture. The node can act as a calling interface to the actual program which calls the application, driving the application and receiving the reply call back. This interfacing application then re-marshals the data to be inserted back into the message flow via the same custom written node. In this way it would be possible to drive different application architectures from within the Brokers. If you have externalised your applications using web services technology (for instance, SOAP), you can now use the HTTP nodes to connect to this framework.. Can the Brokers handle NLS, with messages flowing in varying code pages? The Brokers are NLS enabled. This means that messages can be converted between different code pages as required. Also, when customizing the functions in the processing nodes, NLS characters can be used to set values in the data. The product also supports NLS translated messages to the user, and supports a translated GUI. What are the key differences between the new (Eclipse based) tooling and the old Control Center ? Version 5.0 of the Brokers uses the industry leading Eclipse framework for tooling. This greatly increases productivity, ease of use and skill re-use across different parts of the enterprise. It introduces the concept of common tooling technology across all parts of the WebSphere family. New features in the Edit-Compile-Test cycle include interactive validation of artefacts, rapid development and test support, improved graphical debugging and the ability to import database schema directly from DBMS. For maintenance and team development, the Brokers can now use any Eclipse supported repository, as opposed to the central Configuration Manager repository in previous versions. This allows for greater choice and flexibility in areas such as change control, file locking and security across the development domain. Deployment and administration in Eclipse use a file based paradigm, with the concept of an archive file being key to the packaging and deployment of artefacts. We introduce the ‘broker archive’ file, or BAR file which contains all the objects (message flows, message sets etc.) to be deployed to a particular broker. This can be augmented with a deployment descriptor, which allows you to abstract certain properties (such as queue and database names) out of your flows, allowing for easier movement from development to test to production. Administration of the Brokers can be performed from the graphical tool or from the command line. Can I import my WMQIv2.1 definitions into WebSphere BI Brokers v5.0 ? Yes, you will be able to import the message flow and message set definitions that you have exported from version 2.1. Obviously, these will not make use of new function, such as the Mapping Node, but your flows will continue to operate as they did in WMQIv2.1. Can I still define New Era of Networks Rules and Formats with the Brokers ? If you have purchased the full ‘WBI Message Broker with Rules and Formatter Extension v5.0′ offering, this includes the New Era of Networks function provided in previous releases. This includes the tooling associated with that product. Should I be building new application logic in New Era of Networks nodes, or using the built-in function for data transformation ? This release has improved the message modeling (MRM) capabilities even further than WMQIv2.1 to offer increased flexibility in the definition of messages. Where existing New Era of Networks definitions exist, they can still be used in WBI Message Broker with Rules and Formatter Extension v5.0. Where new messages need to be defined, then in most cases the MRM can be used, depending on the skills available to the user, their business requirements, etc. All defined messages can be used by all nodes and thus the only consideration is to select the nodes with the functionality which best meets your application logic requirements. My existing MQSeries Integrator V1 solution uses adapters from New Era of Networks. Will the adapters still work when my solution runs in WBIMB ? You must implement the full ‘WBI Message Broker with Rules and Formatter Extension v5.0′ offering, then adapters from New Era of Networks that work with existing MQSeries Integrator V1 processes, will continue to work when that technology is running in the new product environment. The adapters can continue to work with the same code, as the V1 code has remained the same, other than being encapsulated as nodes. Do the Brokers provide transactional access to databases? The Brokers are able to connect directly to databases from a message flow by using an ODBC connection. This transactionality is actually provided by WebSphere MQ. To enable this database access to be part of a transactional unit of work, the connection to the database must use XA over ODBC. Currently database products that support XA over ODBC are DB2 UDB from IBM, Oracle, and Sybase. Can I use nodes representing both New Era of Networks function and inbuilt transformation function in the same message flow? If you have implemented the full ‘WBI Message Broker with Rules and Formatter Extension v5.0′ offering, then New Era of Networks function is available as a variety of nodes that are used in the message flow within the broker. If you have defined the message formats to the New Era of Networks Formatter, as well as the Broker’s Message Repository then you can use both types of nodes together in the same message flow, ensuring that the format of any data passed to a node is known to the repository for that node. By connecting the nodes together in this way you are making good use of all of the functionality available in the product, using the strengths of both the previous version of the product and the new version of the product. You can also extend the use of the New Era of Networks nodes by wiring them together in an iterative or recursive way, which would not have been possible in earlier versions of the product. I have an existing application that I need to access from the Brokers – can I invoke it directly from within the message flow, rather than via messaging ? Yes. The Brokers provide an open and extensible framework for building processing logic. Generic transformation function is available with the product, and within the message flow architecture the user is able to plug in additional functions as nodes. Nodes can themselves be additional function, or can act as a calling interface to external code. In this way additional function which runs outside of the scope of the Brokers can be called from within the message flow and be a part of the coordinated unit of work. However, you should be aware of the architectural and performance drawbacks of creating a ‘bound’ connection from a broker to an application. If you wish to invoke your application using web services technology, then you can use the HTTP Nodes to achieve this. What facilities are there for testing and debugging message flows in the Brokers ? The Brokers have a flexible development environment which provides numerous ways which can assist the developer in debugging their message flow. The Visual Debugger which allows breakpoints to be set at any point or points within the message flow has now been enhanced to allow you to debug through lines of ESQL code. This allows developers to track the flow of data through the message flow, watching the contents of the data structure and changing it if required. Other features for debugging are available such as Trace nodes, TryCatch nodes and Throw nodes, all of which can help debug the development of a flow. Additionally as parts of message flows can be separated out and defined as separate nodes, the components making up an end-to-end message flow could be tested individually and then plugged together only requiring minimal further testing. There is also comprehensive user and service tracing available on message flows that are deployed and running. Is there support in a the Brokers to have multiple messages processed by a single message flow? The previous release (WMQIv2.1) introduced nodes that provide the ability to aggregate several messages which can then be processed together. This might be used, for example, to collect a number of replies from different systems, before putting them together as the reply to the original request. Is there support for a message flow to have multiple input queues? What about output queues? The message flows in the Brokers can be defined with any number of WebSphere MQ queues as the inputs for that message flow. The MQInput nodes are independent of each other and can be set to read from the same queues or different queues. The system designer must be aware that messages flow independently through the broker with no state operating between messages and no ability using standard message flow supplied nodes to wait for other messages flowing through the system. Thus there may be a need to have a number of different inputs all feeding the same message flow, or the inputs may be connected to different parts of the same message flow. In addition to the MQSeries input node, WebSphere MQ Integrator includes an MQ Everyplace input node, a SCADA input node, an HTTP input node and a Realtime input node. These can be used as initiators of work in the message flow alongside or instead of MQInput nodes, as can custom-written input nodes. Any number of output queues can be defined to the message flow by connecting any number of nodes (MQOutput, MQReply and also Publication), and thus a single message can output to many queues. By having a number of different nodes, this also will enable different message formats or contents to be put to different queues within the same unit of work.. For output, you can also use any of the protocols listed above (for Input nodes) or make use of multicast technology for message distribution. Output nodes might also include nodes that can be downloaded from the IBM SupportPac site, such as a Sendmail node. Can the Brokers read f rom both local and remote queues? In order to read from an WebSphere MQ queue into a message flow, the Brokers use an MQInput node. This node must be configured with the queue name it is to get messages from. At present this queue must be a queue defined to the local queue manager that is associated with the broker. This queue will generally be a remote queue for the application that creates the message. Can the Brokers send a reply to my application when the message flow completes? Once it has read an WebSphere MQ message from a queue into a message flow, the operations on the message are defined by the node customizations and the route through the nodes. Typically the message will eventually be placed on another queue using an MQOutput node. A specialized version of the MQOutput node is an MQReply node. This allows a message to be sent to the application which originated the message flowing through the message flow, thus informing the application of the successful completion of the message flow. The message flow can have any number of Output nodes and thus it can send construct and send a reply to the originating application as well as sending the result to the target application. Why is SQL used to customize nodes in WebSphere Business Integration Message Broker ? WBIMB uses nodes within a message flow to perform operations on messages and to generate actions based on the messages. The nodes in a message flow are typically customized within a message flow to perform particular tasks. With the nodes that are supplied with the Message Broker, any customization needed in the nodes is done using an extended form of SQL. This was done for a variety of reasons. It is a good language to use when integrating directly with databases. It is a language that is suitable for evaluation and computation. There are a lot of SQL skills available. If users write additional nodes to plug in to the message flow then they are not constrained to using SQL as the customization language for those plug-in. In addition to this, there is now a Mapping Node available, which allows you to define sophisticated customized mappings without the requirement to write ESQL. If you do need to develop ESQL code, this can now been in a modular way, using an ESQL editor, which is then associated with a particular Node. Why would there be a need to write a custom node in the Brokers ? IBM will ship a number of supplied nodes, sometimes called Primitives, with the Brokers. These nodes will provide users with a range of functions and the nodes are designed to be used in a flexible manner so as to be able to build any combination of function required. It is likely that for particular tasks, it is more efficient to write a specific node to perform the function required, rather than to spend time and effort putting together a complex combination of customized nodes when a simple additional plug-in function would perform the same task. This allows the product to offer a full range of programming options, giving standard functions with minimal programming needed, but the ability to extend the functions with programs where required. Additional nodes are already available from a variety of sources. There are additional IBM nodes (and parsers) available from the SupportPac web site (http://www4.ibm.com/software/ts/mqseries/txppacs/txpsumm.html) and there are nodes available from partners, which can be found on our partner plug ins page (http://www4.ibm.com/software/ts/mqseries/directory/mqsinode.html). Can a custom written node be written in any programming language? If a plug-in custom written node is to be used in the Brokers it is an extension of the broker and implemented as a DLL on Windows NT, and as a shared library on UNIX platforms. These nodes can be written in C or Java. Any plug-in nodes being written must provide implementation functions which are invoked by the message broker, but also the node must have an XML representation of itself to be graphically displayed on the palette alongside the other nodes. There is a node development wizard to assist in the creation of these aspects of the node. Can a node be programmed in an object style or a procedural style? The node itself in the Brokers is simply a DLL which at design time is a graphical representation on the palette, along with the customization, which determines how the node is invoked from the broker. It is this program which must be called as the implementation function from the C interface. The node itself can be a complex program and can be procedural or object based. Alternatively the node can simply be the calling interface for another program which can be any architecture required. Note that calls out from a node will keep the thread busy inside that instance of the node. Thus architecturally it would be best if the total time a message spends in a message flow is as small as possible. Therefore some guidance would be to try to ensure that calls out from a node are synchronous calls which return control to the node quickly. How can I use Web Services technology with the Brokers ? Web Services support extends the benefits of the broker to operate on Web Services messages, especially SOAP formatted messages. All the standard broker services are enabled. In particular, transformations between Web Services formats and other formats permit wrapping heritage services as Web Services, or give heritage code access to Web Services. The support includes helper SOAP nodes. These can separate the main payload of the message from the various header fields, or synthesize SOAP messages from basic payload information and associated header information. The support also permits HTTP or WMQ input and output of messages. Thus a simple flow will take an incoming SOAP/HTTP request message, log the request in an audit database and pass the request on to a back end server in the form a COBOL structured WMQ message. A complementary response flow will accept the WMQ response message, log the response in the database while picking up the appropriate return address, compose the response as a SOAP response and deliver it to the original requester as SOAP/HTTP. Is there any guidance on what functions can be used for transformation and mapping within the Brokers ? Transformation function is only available within WBIMB and WBIMB with Rules and Formatter Extension v5.0. A key component of this product is the Message Repository Manager (MRM) where message formats are defined and the wire format of the message is mapped to a logical message structure. All elements (fields in a message) are defined within the MRM and these are assembled into message definitions. These message definitions must represent all the data structures passed throughout the message flow. The message flow in WBIMB provides an open framework with a set of supplied nodes and the ability to add additional nodes to perform any transformation needed. The way in which messages are mapped in the MRM to a logical data structure will make it possible to do transposition and mapping of fields very easily within the message flow configuration. Also the way in which the mapping and compute nodes can be customized with extended SQL or it can pass-through to stored procedures will allow computation transformation to be performed efficiently. There is also an XSLT Node available to transform XML messages by applying stylesheets. However if these methods are not suitable for the particular transformation required, then the New Era of Networks Formatter or New Era of Networks Rules nodes could be used (if you are using the full WBIMB with Rules and Formatter Extension v5.0 product), but also custom written nodes could be created to do the specific transformation most effectively. An alternative approach would be to use function available from additional plug-in nodes, either vendor supplied or supplied by IBM as a SupportPac, some of which supply specialized transformation function. In the WBIMB v5.0 Message Repository, is there support for tagged and delimited messages? The MRM offered with WBIMB supports tagged and delimited messages, such as those used by EDIFACT and S.W.I.F.T. This is in addition to the comprehensive XML and fixed record (C and COBOL) format support. In the WBIMB v5.0 Message Repository, is there support for messages with repeating elements or groups of elements? By using the MRM, WBIMB v5.0 can map the wire format of a message into the logical data structure. This allows certain common message structures to be defined as logical structures. If a message contains repeating fields, then the MRM can be set to include this information whether that field repeats a fixed or variable number of times. Groups of elements can be established within the MRM as a type and thus single elements can actually map out to become compound elements with a number of other elements making up a group to represent the required element structure. What size of WebSphere MQ messages does the Brokers support? On distributed platforms (e.g. NT and Unix platforms) WebSphere MQ supports messages with an individual size of 100MB. These messages can also be chained together as segmented messages, so that any size of message can be passed as a logically single message. Also if the product receives a segmented WebSphere MQ message, it can, if required, reassemble all message segments before processing the message. However, large messages can become extremely slow to parse. For example, a 100MB XML message could take a long time to process, this is not a limitation of the broker, the same would be true of any XML parser. WebSphere MQ provides features such as segmented messages and groups of messages. Do the Brokers support messages using these features? As described above, the Brokers have full support for processing segmented messages if selected by customizing the MQInput node in the relevant message flow. There is also a setting for supporting WebSphere MQ message groups whereby processing of a message that is part of a group can be delayed until all messages in that group are available and then processing of the messages can take place in sequence. When defining messages to WBIMB v5.0, what simple types are supported? Messages defined to the MRM in WBIMB are broken down into elements. Each element is assigned a type, which can be a simple type or a compound type. The logical simple types that are part of the product are listed below. Each of these logical types can map onto several different physical types – for example an Integer can be represented in many different ways in the context of a bitstream defined by a COBOL copybook. For a detailed discussion of the various physical types supported please see the ‘Working with Messages’ manual supplied with the product. Integer String Datetime Decimal Float Binary Boolean What is the most effective way of defining message formats to the Message Repository in WBIMB ? The MRM in WBIMB stores the mapping between the wire format of the messages and the logical data structure used within the message flow. The MRM can be populated by using the Solution Studio tool. Additionally the MRM can be populated by importing definitions from C structures or COBOL Copybooks. The MRM has import routines that will scan through the supplied structures or copybooks and build matching data structures in the MRM without the need to define them by hand. WBIMB also contains importers for XML DTDs and schemas. In the latest release, we offer comprehensive schema support, including namespaces. Some predefined message sets (such as S.W.I.F.T.) are available as part of services offerings. Can I process both XML self-defining messages and non-XML messages (defined in the Message Repository) with the same message flow in WBIMB ? If XML messages are to be processed in a message flow in WBIMB v5.0 then there is no need for them to be defined to the MRM. This is because they are self-defining tagged messages. The message flow nodes can access a parser specifically designed to process XML which will enable the message structure to be parsed without being defined in the MRM. If messages are defined in the MRM, then whether they were originally XML or non-XML then they are interpreted according to their MRM definition, processed and validated accordingly. When customizing nodes in the message flow, if a message structure is defined to the MRM then the node customizer will have access to the message structure from the MRM. This is not the case for XML messages which have not been defined to the MRM, so the customization of the nodes has to be done manually to enter the XML message field names and the XML parser must be selected. Otherwise there should be no difference in handling XML and non-XML messages in a message flow. What support is there for handling S.W.I.F.T. messages or messages in SAP IDOC format? Tagged and delimited messages such as these can be defined directly to the MRM. If you are already using New Era of Networks adapters and nodes, then these can continue to be used (only if you are using the WBIMB with Rules and Formatter Extension v5.0 product). Predefined message sets for certain formats (such as S.W.I.F.T.) are available as part of services offerings. For connectivity to SAP, the WebSphere Business Integration Adapter for MySAP.com can be used. Another option would be to write a custom parser to handle these message formats directly within the broker, and an IDOC parser can be found on the SupportPacs page. (http://www-4.ibm.com/software/ts/mqseries/txppacs/txpsumm.html). How will the Brokers scale for large numbers of applications and messages? Clearly a product designed to operate in a mission-critical environment like WebSphere Business Integration Brokers needs to be able to scale in a flexible manner to meet demand. This product can scale in a number of different ways depending on configuration and need. The message flows are multithreaded. and are deployed to an execution group on a broker. A broker runs on a single machine and can be partitioned using execution groups, which can aid in scaling and also aids failover. Different applications can be partitioned across different execution groups, with the application message flows scaling through multithreading. Also you could scale by defining the same message flows to different execution groups. As different execution groups run in different processes, this will allow more scaling. In addition message flows could be replicated across multiple brokers allowing applications to scale across multiple machines. Applications are driven by receiving messages. If a large number of messages are being received it may be wise to use WebSphere MQ clustering to enable WebSphere MQ to scale, and the message flows which read messages off the queues to handle very large volumes of messages. An example of using this scaling could be a message flow which is designed to read messages from a Web front-end and to reformat and distribute the various messages to the differing backends. Initially the number of threads allocated to the message flow could be allocated to meet the expected workload. this could be then adjusted as the workload increased. An additional execution group could be added to the broker and the identical message flow could be replicated to this new group, which would double the throughput and also keep the resource available should the process running the execution group fail. To give additional failover reassurance an additional broker could be defined on another system. The message flow could also be replicated to this broker, also improving the overall system throughput. Eventually additional regional brokers may be added, and again the message flow can simply be replicated. Are we able to deploy changes to the configuration without shutting down the system? The Brokers are made up of various components. These components communicate using WebSphere MQ messages. This allows the configuration manager to act as the central deployment manager, sending configuration data, as required, out to the various brokers which can be anywhere in the domain. The brokers listen for these configuration messages replace deployed older versions with more recent versions of message set definitions or message flows. This is possible to do without interruption to the service, but it is also possible to quiesce processes down to individual message flows in order for a smooth and well-defined transition between old and new versions to take place. This gives us “24 by 7″ operation if required but with the ability to manage the changes by stopping resources if preferred. The Broker Toolkit administration tools provide a “live” view of the Broker domain, monitoring for changes and updating dynamically. For example, when a deploy completes, all connected administration tool users with “view” Access Control permissions for the deployed artifacts are automatically updated with the deploy results. Can there be multiple brokers running on a single machine? Yes. The component based architecture of the Brokers, being based on WebSphere MQ for communication between components, relies on there being an available and unique WebSphere MQ Queue Manager for each broker. For each broker there must be a defined and active WebSphere MQ Queue Manager that is not used as the Queue Manager by any other broker. Other than this restriction then there is no reason not to have more than one broker defined and active on a single machine, other than the impact it will have on performance, due to the additional overhead. What kind of support do WebSphere Business Integration Brokers offer for multiple users using the product to change definitions at the same time? WebSphere Business Integration Brokers V5.0 is composed of 2 parts: the Broker domain, which is all the runtime components controlled by a single Configuration Manager, and the Broker Toolkit, which includes the administration and development tools. Multiple concurrent users are able configure and deploy content to a WebSphere Business Integration Brokers domain. Domain Access Control Lists (ACLs) provide configurable security and control over which Broker domain entities each user or group can view, modify, create, or delete. For example, a Broker domain can contain a development test broker and a production broker; the developers are given access to a single execution group on the test broker, and the production administrator has sole control over the production broker. Multiple lines of business can be consolidated in a single Broker domain, with each line of business administrator having sole control over their part of the domain. The Eclipse-based WebSphere MQ Brokers Toolkit Broker Administration tools and associated administration console programs are used to concurrently configure and control multiple WebSphere MQ Integrator V5.0 Broker domains. They can be used by any number of users concurrently, subject to the ACL security mentioned above. The console programs provide the mechanism for complex deploys to be scripted in a repeatable, consistent manner without errorprone human interaction. The Eclipse-based WebSphere MQ Brokers Toolkit Broker Development tools are compatible with all Eclipse-based source control repositories. Multiple developers can concurrently work with the Broker Toolkit to develop message flows and message sets, and share their work through an Eclipse compatible source control repository. Text based compare and merge tools facilitate the development process. IBM Rational ClearCase is an Eclipse compatible source control repository that supports parallel development, development process control, and file concurrency control (locking). What kind of support do the Brokers offer for failover and high availability Systems? The Brokers initially exploit the facilities provided by WebSphere MQ. There are a number of SupportPacs provided in order to allow users to implement failover on the AIX, HP, Solaris and NT platforms. Once the base WebSphere MQ has been taken over, then the applications running on that WebSphere MQ server can be restarted, including the Brokers. There are a number of SupportPacs which assist you in the necessary set up and operational procedures required. Is there any way to look at or modify configuration information held by the Brokers other than by using the workbench? In addition to the Eclipse-based Broker Toolkit (which provides almost all configuration functions), command line utilities that push configuration data to the domain are provided in WebSphere MQ Brokers V5.0. For example, it is possible to write a script that builds the tooling definitions for multiple message flows and message sets, performs validation on those definitions, then customizes the message flow configurable properties (such as database DSN names) per-broker, deploys to the broker Domain, and returns success or a failure code. Pulling information from the Broker domain is generally not supported. Can I restrict the availability of the tool functions to just specified users? Access Control Lists (ACLs) support view, modify, create, and delete permissions to be assigned to principles for individual Broker domain artifacts. For example, ACL entries can be configured to assign the production broker administrator complete control of some brokers, while absolutely preventing members of the development team access to the same brokers, and visa versa. ACL entries can be configured to provide the role based access provided in WebSphere MQ Integrator V2.1 and previous. How do the Brokers scale for improving performance? The Brokers scale for performance in a number of ways. Each message flow can be configured for a number of instances defined by the number of concurrent threads assigned to the flow. These message flows can be run in a single broker on a number of different execution groups. The number of execution groups, which may vary depending on the number of processors in the physical machine where the broker is running, is also a factor in the scaling of the solution. Additionally multiple brokers can be defined in an WebSphere MQ clustering environment to further provide scaling. Furthermore, the addition of the z/OS platform considerably extends the scalability options available to users. What factors in message flow design have a big impact in performance? There are some key things that can be done when designing and planning your message flow to ensure good performance is achieved. The key things to know are that as all communication between nodes in the message flow is done in memory, there should be good performance through a message flow, depending on the size of the machine being used and the amount of memory available. Other determining factors are whether any of the nodes are interacting with external systems such as databases. If external systems are involved, unless WebSphere MQ connections are used asynchronously, then the performance through the message flow can be affected by the performance of the external system. Another factor in the performance of the message flow will be the size of the messages being passed through the flow, and also the amount of processing being done on the messages in the flow. All these things should be taken into consideration when designing the message flow for performance Are there any differences between the Publish/Subscribe function that is available with the base MQSeries product and the Publish/Subscribe function that is available with the Brokers ? MQSeries Publish/Subscribe was first available as part of CSD05 for MQSeries V5.0, and was supplied as part of the MQSeries V5.1 product, and also the MQSeries V5.2 product. The Brokers extend the functions available with the base product Publish/Subscribe, while remaining compatible with it. The new features are: Subscription is topic based with additional content based filtering Security ACLs based on topics rather than queues Brokers can be organized into collectives There is a choice of protocols, not only WMQ, but also WMQe, WMQTT (Scada) and the high performance Realtime and multicast protocols. How is the security defined for the Publish/Subscribe function available with the Brokers ? When using the Brokers, the publisher will publish with a particular topic, which can be built up as a hierarchy. The security for this hierarchy is assigned as ACLs for specific users and groups from the top level of the hierarchy downwards, using inheritance for the lower levels, but also allowing specific allocation of ACLs at each hierarchical level. The ACLs can specify whether particular users can Publish, Subscribe or Publish a Persistent Message. The permission allow the ACLs to be set to allow or deny the access to these functions. All of these permissions are administered from the Workbench. Why is topic and content based subscription, available with the Brokers, an advantage over just topic based subscription? The key benefit of content based subscription is the improvement in the granularity for the receiving application. When designing applications to meet a business purpose it is necessary to cater for all different scenarios. Therefore if subscribing to a particular published topic where different values in different fields can generate differing scenarios the subscribing application can get very complex. Without content based subscription, the only way to reduce the granularity of the published messages, and thus simplify the receiving messages would be to increase the number of topics which adds overhead and it can be difficult to specify these additional topics. With content based subscription a simple application can be built to handle each identified scenario with all applications subscribing to the same topic. The application will only receive the published message if it matches the published topic and also the content of the message meets the filter used on the subscription. In this way each simple application which caters for the occurrence of a particular scenario only gets executed when that particular scenario occurs. The only logic needed to build this subscription is to identify the fields within a message to analyze for particular value or values. Then the Publish/Subscribe network itself routes the message to the application without the need for additional logic. It should be noted that content based routing is not available in WBIEB. This product is purely a routing engine, operating point-to-point and publish/subscribe distribution. It does not contain the sophisticated data modeling and parsing capabilities of the Message Broker, so it is unable to understand the content of the message and, therefore, is unable to route based on that content
Report "IBM Message Broker Interview Question and Answer"