BidVertiser

Showing posts with label IBM Websphere MQ. Show all posts
Showing posts with label IBM Websphere MQ. Show all posts

Friday, May 1, 2009

MQ Best Practices

* when installing MQ Server, do install MQ Client also. It is very useful to connect to remote sites.
* naming convention (MD00, GG24-4469 and MD04)

See Intercommunication manual for suggested naming conventions
o queue name max length = 48 chars (all MQ objects, except ...)
o channel name max length = 20 chars

* use ReplyToQ/ReplyToQMgr fields
* use REPLY type in response message
* use triggering if possible. Use TRIGGER FIRST. TRIGGER EVERY only if needed. Avoid TRIGGER DEPTH.
* do not use persistence if possible
* copy Message_Id into Correl_Id field to correlate response to request
* request a Report if your message is rejected or expires.
* know the default queue manager and verify it exists - used by runmqsc -w
* MQ & clustering :
o define a Qmgr to be exclusively FR1 and another Qmgr to be FR2
o use 2 (and no more) Full Repositories
o make sure both FRs have a Cluster Sender Channel to the other FR
* MQ under HACMP :
o use virtual IP in "IPADDR( )" at listener definition
o use separated disks for Data & Log - better performance
o if cluster is used, place FR's on HACMP machines
* MQ for MB :
o increase LOG size, as default MQ log for Windows is not enough to deploy a 500KB bar file
o increase CM 2 BK channel message length; otherwise flows wont be deployed. Easiest way is: immediately after creating the queue manager, ALTER the MAXMSGL attribute of SYSTEM.DEFAULT.LOCAL.QUEUE, SYSTEM.DEF.SENDER, SYSTEM.DEF.RECEIVER, SYSTEM.DEF.CLUSSDR, and SYSTEM.DEF.CLUSRCVR. Even better: have a script to create queue managers for MB that does log size and MAXMSGL automatically.

IBM Websphere MQ Tools

MQ tools

Tool / file name Purpose
amqsaicq.c Create a local queue using the MQ Administration Interface (MQAI)
amqsaiem.c Event monitor using the MQ Admin Interface (MQAI)
amqsailq.c Inquire the current depth of all local queues using MQAI
amqsaxe0.c ApiExit which traces MQAPI calls
amqsbcg0.c Browse messages, text and header (use amqsgbr for text only)
amqsblst.c Bandwidth and connectivity tester
amqscnxc.c Client connection information on MQCONNX
amqsecha.c Echo messages to reply to queue (triggered program) (sent by amqsreq, maybe)
amqsgbr0.c Browse messages, text only (use amqsbcg for text and header)
amqsget0.c Get a message
amqsgrma.c Get reference messages from a queue. Checks that the objects, identified in the messages, exist
amqsinqa.c MQINQ sample (triggered program)
amqsldpc.c Look up the MQ host name, channel name and queue name in an LDAP directory + MQPUT
amqsmon0.c Get an statistics or accounting message
amqsprma.c Create a reference message
amqsptl0.c Put messages to a list of queues
amqsput0.c Put a message
amqsqrma.c Channel message exit program to process reference messages
amqsreq0.c Put request messages to a queue, and show the reply message (sent by amqsecha, maybe)
amqsseta.c MQSET sample (triggered program)
amqsspin.c SSPI Channel Exit routines (Security)
amqsstop.c Inquire on all the connections for a selected process and request them to be stopped
amqstrg0.c Trigger monitor - read an initiation queue, and start the program associated with trigger message
amqstxgx.c Get transaction for Tuxedo
amqstxpx.c Put transaction for Tuxedo
amqstxsx.c Server for Tuxedo
amqsvfc0.c Skeleton of a Data Conversion exit
amqswlm0.c CLWL exit that chooses a destination QMgr
amqsxae0.c Sample Encina program
amqsxrma.c Channel message exit to process reference messages
amquregn.c Dump MQ values from Registry (NT)
amqzscgn.c CICS GLobal User Exit (GLUE) program for the CICS Task termination user exit (UE014015)
amqzscin.c XA switch program for CICS XA Initialisation

Saturday, April 25, 2009

IBM Websphere MQ Features

WebSphere MQ provides assured one-time delivery of messages across a wide variety of platforms. The product emphasizes reliability and robustness of message traffic, and ensures that a message should never be lost if MQ is appropriately configured.

It needs to be remembered that a message in the context of MQ has no implication other than a gathering of data. MQ is very generalized and can be used as a robust substitute for many forms of intercommunication. For example, it can be used to implement reliable delivery of large files as a substitute for FTP.

MQ provides application designers a mechanism to achieve non-time-dependent architecture. Messages can be sent from one application to another, regardless of whether the applications are running at the same time. If a message receiver application is not running when a sender sends it a message, the queue manager will hold the message until the receiver asks for it. Ordering of all messages is preserved, by default this is in FIFO Order of receipt at the local queue within priority of the message.

It provides a means for transforming data between different architectures and protocols, such as Big Endian to Little Endian, or EBCDIC to ASCII. This is accomplished through the use of message data "exits". Exits are compiled applications which run on the queue manager host, and are executed by the WebSphere MQ software at the time data transformation is needed.

WebSphere MQ allows receipt of messages to "trigger" other applications to run, and thus provides the framework for a message driven architecture.

It implements the JMS standard API, and also has its own proprietary API, known as the Message Queuing Interface.

Unlike email, MQ itself is responsible for determining the destination of messages by the definition of queues, so processing of sent messages can be moved to a different application at a different destination. MQ provides a robust routing architecture, allowing messages to be routed via alternative paths around a network of MQ managers. MQ can be implemented as a cluster, where multiple MQ implementations share the processing of messages to allow higher performance and load balancing.

IBM Websphere MQ History

Developed in Scotland, Telecommunications Access Method (TCAM) came along in 1971 with the birth of TSO. It supported asynchronous messaging, as with MQ. TCAM 3.0 added in reusable disk message queues for recovery soon thereafter, as with MQ. A high-level PL/I program could be used to access TRANSIENT datasets (dynamic message queues). Reading a message from a transient dataset resulted in that message is removed from the queue, as with a non-browse READ with MQ. With the advent of computers, IBM saw an opportunity to apply new technology to the need for message switching. In the early 1960s, IBM marketed computer-like devices, such as the 7740 and 7750 message switching systems.

The IBM System/360 was announced in April 1964 and with it came communication access methods such as BTAM and QTAM (Basic and Queued Telecommunications Access Methods). In the late 1960s, still another communication access method became available and it was known as TCAM, the Telecommunications Access Method. TCAM offered its users a more advanced form of message switching or message routing. TCAM was widely accepted, especially in the financial and brokerage industries.

In the late 1960s, transaction management systems came into being, each trying to achieve a leadership position in the industry. Within IBM, CICS and IMS were chosen as strategic products to address the need for transaction management. Within both CICS and IMS, each had its version of message switching, IMS being a front-end queued system and CICS having its Transient Data facility as the possible basis for message switching.

CICS established itself as a popular transaction management system in the 1968-1971 timeframe, those users who had adopted TCAM for its message handling capabilities, now wanted a combined use of TCAM with CICS. In December 1971, IBM announced CICS support of TCAM as part of the CICS/OS-Standard product, to be delivered in December 1972. For interested customers, this enabled them to use TCAM for its message handling strengths and also have TCAM-connected terminals or computers interface with CICS online applications.

In January 1973, TCAM continued to be supported by CICS/OS-Standard Version 2.3. However, TCAM support was omitted from the initial release of CICS/VS, announced in February 1973 and delivered in June 1974. Needless to say, many CICS-TCAM customers were not happy with that product direction.

With considerable pressure from CICS-TCAM customers, the CICS support of TCAM was reinstated in the CICS/VS 1.1 product, as of September 1974. In addition to the previous DCB support, with this reinstatement of TCAM support, CICS began to support TCAM access via VTAM, also known as the ACB support. CICS TCAM ACB support was discontinued as of the CICS/ESA Version 3 product in 1990.

In 1992, IBM announced a new product family called WebSphere MQ. WebSphere MQ was to be the extension of TCAM functionality from IBM-only systems to all other platforms. WebSphere MQ had an architecture which enabled heterogeneous systems to communicate with each other (e.g. IBM, HP, Sun, Tandem, etc). WebSphere MQ can be used with CICS systems to send and receive data to/from any other MQ-eligible system. WebSphere MQ can be used to initiate work in a CICS system or a CICS transaction can initiate work in another CICS or non-CICS system.

WebSphere MQ now supports 80 different environments and has become the leading message switching/routing product in the industry.

Sunday, April 19, 2009

IBM Websphere MQ Processes

Processes

AMQMTRBN . amqhasmn.exe - the logger.
amqmsrvn.exe - COM server.
amqmtbrn.exe - . amqpcsea.exe - the command server.
amqrmppa.exe - channel process.
amqrrmfa.exe - repository process (for clusters).
amqsvc.exe - . amqxssvn.exe - shared memory server(s).
amqzdmaa.exe - deferred message processor.
amqzfuma.exe - OAM process.
amqzlaa0.exe - queue manager agents (LQM agents).
amqzllp0.exe - checkpoint processor.
amqzxma0.exe - processing controller.
runmqchi.exe - channel initiator. runmqlsr.exe - listener.

Description of MQ tasks :

When a queue manager is running, you see some or all of the following batch jobs running under the QMQM user profile in the MQ subsystem.
Job name Function AMQALMPX The checkpoint processor that periodically takes journal checkpoints. AMQCLMAA Non-threaded TCP/IP listener. AMQCRSTA TCP/IP-invoked channel responder. AMQCRS6B LU62 receiver channel and client connection (see note). AMQFCXBA Broker worker job. AMQPCSEA PCF command processor. Handles PCF and remote administration requests. AMQRMPPA Channel process pooling job. AMQRRMFA Repository manager for clusters. AMQZDMAA Deferred message handler. AMQZFUMA Object authority manager (OAM). AMQZLAA0 Queue manager agents that perform the bulk of the work for applications that connect to the queue manager using MQCNO_STANDARD_BINDING. AMQZLAS0

Queue manager agent. AMQZXMA0 The execution controller is the first job started by the queue manager. Deals with MQCONN requests. Starts agent processes to process MQ API calls. AMQZMGR0 Process controller. Used to start up and manage listeners and services. AMQZMUC0 Utility manager. Do critical utilities, as the journal chain manager. AMQZMUR0 Utility manager. Do critical utilities, as the journal chain manager. RUNMQBRK Broker control job. RUNMQCHI The channel initiator. RUNMQCHL Sender channel job that is started for each sender channel. RUNMQDLQ Dead letter queue handler. RUNMQLSR Threaded TCP/IP listener. RUNMQTRM Trigger monitor.



End the processes in the following order:
amqzmuc0 Critical process manager amqzxma0 Execution controller amqzfuma OAM process amqzlaa0 LQM agents amqzlsa0 LQM agents amqzmur0 Restartable process manager amqrmppa Process pooling process amqrrmfa The repository process (for clusters) amqzdmaa Deferred message processor amqpcsea The command server

What is Channel?

A channel is a communication link used by distributed queue managers. There are two categories of channel in MQ:

Message channels, which are unidirectional, and transfer messages from one queue manager to another.

MQI channels, which are bidirectional, and transfer MQI calls from a MQ client to a queue manager, and responses from a queue manager to a MQ client.

There are two types of MQI channel : server-connection and client-connection.
MQ 6.0, "Application Programming Guide", SC34-6595-01, page 45 [65/601]
The definition of each end of a message channel can be one of the following types:
Sender
Receiver
Server
Requester
Cluster sender
Cluster receiver
Do not confuse message channels with MQI channels. There are two types of MQI channel : server-connection and client-connection.
A message channel is defined using one of these types defined at one end, and a compatible type at the other end. Possible combinations are:
Sender - Receiver
Requester - Server
Requester - Sender (callback)
Server - Receiver (server is used as a sender)
Client-connection with Server-connection
Cluster sender-cluster receiver
MQ v 6.0, "Intercommunication", SC34-6587, page 8 [30/573].
Server / Requester use
Supose we have this environment, where firewall prevents QM2 to start a normal Sender-Receiver channel from QM2.TO.QM1, but not TCP connections from QM1 to QM2.
.-----. .---. .-----. QM1 <===== F <======= QM2 .-----. .---. .-----. We shall use a SERVER channel at QM2 and a REQUESTER channel at QM1. In this way, the data can flow from QM2 to QM1, and the channel is started from QM1. SVRCONN A server connection channel object defines the name of a channel that a client can use to connect to a queue manager and the attributes of the MCA that hosts that connection. CLNTCONN This is different to all other channel types, because it is never used by the queue manager itself. Instead, an entry is added to a client channel definition table (CCDT) file, which can be distributed to other machines and used by client applications to configure their MCAs. How to start A channel can be caused to start transmitting messages in one of four ways. It can be: Started by an operator (not receiver, cluster-receiver or server-connection channels). Triggered from the transmission queue (sender, and fully-qualified server channels only). You will need to prepare the necessary objects for triggering channels. Started from an application program (not receiver, cluster-receiver or server-connection channels). Started remotely from the network by a sender, cluster-sender, requester, server, or client-connection channel. Receiver, cluster-receiver and possibly server and requester channel transmissions, are started this way; so are server-connection channels. The channels themselves must already be started (that is, enabled). In Windows systems, start a listener as a background process at the receiver end of each channel. On the source queue manager, type: runmqlsr -t TCP -m source.queue.manager On the target queue manager, type: runmqlsr -t TCP -m target.queue.manager Then start the channels, again as background processes: On the source queue manager, type: runmqchl -c source.to.target -m source.queue.manager On the target queue manager, type: runmqchl -c target.to.source -m target.queue.manager System Administration, page 63 [87 of 567]
Auto-Magic
If you want the first message put in the queue DESA4 to start the associated transmit channel DESA3.DESA4, then define the queue this way :
def ql(DESA4) usage(xmitq) maxmsgl(104857600) + trigger TRIGTYPE(EVERY) TRIGDPTH(1) + trigdata(DESA3.DESA4) + /* channel name */ initq(SYSTEM.CHANNEL.INITQ) replace /* mandatory */
The TrigData attribute must contain the name of the channel to be triggered. The InitQ must be SYSTEM.CHANNEL.INITQ

Sunday, April 12, 2009

Oracle Fusion Middleware Components

Oracle Fusion Middleware Components

Enterprise Application Server
Weblogic Server
Oracle Application Server
Integration & Process Management
BPEL Process Manager
Business Activity Monitoring
Business Rules
Enterprise Connectivity (Adapters)
Enterprise Messaging Service
Enterprise Service Bus
Oracle Application server B2B
Service Registry
Web Services Manager
Development Tools
Application Development Framework
JDeveloper
SOA Suite
TopLink
Forms Services
Developer Suite
Business Intelligence
Business Intelligence 10g[7]
Business Activity Monitoring
Discoverer
Data Hubs
BI Publisher
Reports Services
Systems Management
Enterprise Manager 10g
Web Services Manager
User Interaction
Beehive
Collaboration Suite
Portal
Oracle Webcenter
Real-Time Collaboration
Unified Messaging
Workspaces
Content Management
Web content management
Records management
Enterprise search
Digital asset management
Email archiving
Identity management
Identity Management
Enterprise Single sign-on
Identity Manager
Oracle Access Manager
Oracle Adaptive Access Manager
Grid Infrastructure
Services Registry
Application Server Security

ORACLE Middleware

Oracle Fusion Middleware (OFM) is a portfolio of software products, produced by Oracle, that spans multiple services, including J2EE and developer tools, integration services, business intelligence, collaboration, and content management. OFM is based on open standards such as BPEL, SOAP, XML and JMS.[1] Many of the products included under the Oracle Fusion Middleware banner are not themselves middleware products, Fusion Middleware essentially being a rebranding of many of Oracle's products outside of their core database and applications software offerings. According to Oracle, by 2006 over 30,000 organizations were Fusion Middleware customers, including over 35 of the world's 50 largest companies and more than 750 of the BusinessWeek Global 1000, with OFM also supported by 7,500 partners.[2]

Oracle Fusion Middleware is designed to support development, deployment, and management of Service-Oriented Architecture. It includes what Oracle calls "Hot-Pluggable" architecture, which allows users to leverage existing investments in applications and systems from other software vendors such as IBM, Microsoft, and SAP AG.[3] Oracle will also leverage what is called configurable network computing, (CNC) techology that it got from its combined PeopleSoft and JDEdwards acquisition in 2005. Oracle Fusion Applications are under development based on Oracle Fusion Middleware.

HP, in order to provide standards-based software to assist with business process automation, have incorporated OFM into their Service-Oriented Architecture (SOA) portfolio.[4]

In January 2008, Oracle Universal Content Management won InfoWorld's Technology of the Year award for "Best Enterprise Content Manager", with Oracle SOA Suite also winning the award for "Best Enterprise Service Bus".[5]

In 2007, Gartner said "OFM has reached a degree of completeness that puts it on par with, and in some cases ahead of, competing software stacks", reporting revenue from the suite of over $1bn US during FY06, estimating the revenue from the genuinely middleware aspects at $740M.[6]

Thursday, April 9, 2009

WebSphere Message Broker

WebSphere Message Broker

WebSphere software

Features and benefits

IBM WebSphere® Message Broker V6.1 supports the following key capabilities and benefits:

Platform-Independent Based Enterprise Service Bus

*

Distribute any type of information across and between multiple diverse systems and applications, providing delivery of the right information in the right format at the right time
*

Reduce point-to-point interconnections and simplify application programming through separation of integration logic from the applications and from process logic
*

Powerful publish-and-subscribe matching engine routes information in real time based on topic and content to any endpoint
*

Validate and transform messages in-flight between any combination of different message formats, including Web Services, other XML and non-XML formats
*

Route messages based on (evaluated) business rules to match information content and business processes
*

Improve business agility by dynamically reconfiguring information distribution patterns without reprogramming end-point applications
*

Powerful runtime security model to address security concerns.
*

Integrated JCA based WebSphere Adapters as built-in nodes
*

Strengthens security and accelerates Web Services Security processing with DataPower SOA Appliance
*

Integration and enhancement of WebSphere Service Registry and Repository support to virtualize services for greater reuse

Enhance SOA support with advanced Web Services

*

Mediates (provides routing, transformation and logging) between Web Service requesters and providers
*

Mediates between Web Services and other integration models as both a service requester and a service provider
*

Delivers support for Web Services Security and Web Services Addressing, and compliance for Basic Profile
*

Works with the latest implementations of standards such as WSDL (Web Services Definition Language), SOAP (Simple Object Access Protocol), SOAP with attachments, any JMS (Java™ Message Service) HTTP(s) (Hypertext Transport Protocol), MTOM/XOP, and MQ
*

Enhanced support for provider and consumer scenarios
*

Toolkit support for WSDL drag and drop for skeleton flow creation and configuration
*

Full message set round-tripping for WSDL imports and exports.
*

New Web services parser creates more consumable message tree.

Integration without bounds with connectivity and transformation capabilities

*

Integrated WebSphere MQ transports - for Enterprise, Mobile, Real-Time, Multicast and Telemetry end points - extend the reach, scope and scale of the enterprise integration bus, out to mobile and handheld devices, along with embedded devices such as sensors or actuators.
*

Enable the secure and seamless interaction of enterprise applications with thousands of users within the Intranet and across the Internet
*

Provide native JMS interoperability, acting as a bridge between any combinations of different JMS providers.
*

Out-of-the-box nodes to simplify management and improve performance for key enterprise resource planning (ERP) integration scenarios (for example, SAP, Siebel, and PeopleSoft) through WebSphere Adapters packaged as native message-processing nodes
*

Native support for large file processing, including FTP, to simplify processing of large, repeating complex file records without using excessive storage
*

New Email Output node
*

Integration with WebSphere Transformation Extender, including the launcher, enabling WebSphere Transformation Extended maps to run natively in WebSphere Message Broker

Improved Consumability, Productivity and Systems Management

*

Provides a quick start with a single-click installation; install the product and run a sample in less than an hour
*

Simple packaging allowing for easy identification of appropriate install assets
*

Single install DVD for Windows and Linux desktops
*

ISMP installer for all platforms, SMP/.E for z/Os systems
*

Comprehensive "samples gallery" for all new and existing functions
*

Enterprise-wide identity, authentication, and authorization with Tivoli and Lightweight Directory Access Protocol (LDAP) servers to enforce service policy at the user level for greater security
*

Administration of both WebSphere MQ and WebSphere Message Broker networks in one console with the Eclipse-based Message Broker Explorer
*

Roll back with a single click

Extend your infrastructure with broader platform support and performance

*

Extend an existing WebSphere MQ and WebSphere Event Broker infrastructure
*

Available on IBM z/OS®, IBM AIX®, Linux (zSeries®, Intel, Power), Solaris (x86-64 and SPARC), HP/UX(PA-RISC, Itanium) and Microsoft® Windows® Server
*

Full range of industry standard databases includting support for DB2, SQL Server, Oracle, Sybase and Informix
*

Accounting and statistics reports support usage based charges and real-time graphical performance analysis for internal business charging
*

Enhanced SAP IDOC support
*

Improved binary data modeling within text messages.
*

64-bit capability on Linux and UNIX, Java Database Connectivity (JDBC) XA support, and Java 5 on all platforms
*

Ultra High Performance XML parser, including schema validation
*

Compacted memory footprint

Enhanced Developer Productivity

*

Eclipse based Message Broker Toolkit compatible with Rational Application Developer V6 and available on Windows and Linux
*

Data transformation options to match the data format and the developer skill set
*

Reduced toolkit size with enhanced look and feel improvements including productivity aids.
*

Standards based metadata including XML Schema and Web Services Definition Language
*

Java Debug Protocol (JDP) enabled withing toolkit
*

Graphical message metadata and mapping definition
*

Visual trace capability to display message path through flow in real time in Eclipse
*

New message viewer to graphically identify source and/or target message element locations
*

Simplified development with a configuration-drive approach for all new nodes
*

Eclipse based Type Designer and Map Designer integrated with the toolkit

Tuesday, April 7, 2009

What is Middleware?

Middleware is computer software that connects software components or applications. The software consists of a set of services that allow multiple processes running on one or more machines to interact across a network. This technology evolved to provide for interoperability in support of the move to coherent distributed architectures, which are used most often to support and simplify complex, distributed applications. It includes web servers, application servers, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture.

Middleware sits "in the middle" between application software working on different operating systems. It is similar to the middle layer of a three-tier single system architecture, except that it is stretched across multiple systems or applications. Examples include database systems, telecommunications software, transaction monitors, and messaging-and-queueing software.

The distinction between operating system and middleware functionality is, to some extent, arbitrary. While core kernel functionality can only be provided by the operating system itself, some functionality previously provided by separately sold middleware is now integrated in operating systems. A typical example is the TCP/IP stack for telecommunications, nowadays included in virtually every operating system.

In simulation technology, middleware is generally used in the context of the high level architecture (HLA) that applies to many distributed simulations. It is a layer of software that lies between the application code and the run-time infrastructure. Middleware generally consists of a library of functions, and enables a number of applications – simulations or federates in HLA terminology – to page these functions from the common library rather than re-create them for each application

Sunday, April 5, 2009

Middleware Interview Questions2

7. What are the different categories of client/Server applications?
Classes of client/server applications: Client/Server applications can be categorized by class,
based on where most of the processing is done. Each class requires different hardware and
software capabilities on the client, the server and the network.
1. Host-Based Processing
2. Client-Based Processing
3. Coopeartive Processing


8. What is meant by Client, Server & Network?
Client : The client hardware is the desktop machine that runs client software. It could be a micro
or a workstation. The client software formulates data request and passes the request to the
network software. This software sends the request to the server, accepts the result from the server
and passes the request back to the client software.
Server : A server is the machine that runs data management software that has been designed for
server functionality. A server has operating system software, data management software and a
portion of the network software.
Network : The network hardware is the cabling, the communication cards and the devices that
link the servers and the clients.

9. Define Application server.
Application Server : Application server, which provides specific application services to an
application. Application servers are the type of middleware, which occupy a large chunk of
computing territory between database servers and end users.

10. What is meant by HTTP and ODBC?
1. ODBC : Open database connectivity is a windows technology that lets a
database client application connect to a external database. To use ODBC,
the database vendor must provide an ODBC driver for data access.
2. HTTP : Hyper Text Transfer Protocol is the underlying protocol used by
the world wide web. HTTP defines how messages are formatted and
transmitted and what action web servers and browsers should take in
response to various commands. HTTP only supports transmission of text.

11. Define Group Server.
Groupware Server : A Groupware server is a software designed to enable users to
collaborate, regardless of location through the internet or a corporate intranet and to work
together in a virtual atmosphere.

12. Define TCP/IP and IPx/SPx.
TCP/IP : Transfer control Protocol and Internet Protocol

Middleware Interview Questions 3

13. What is Peer-to-Peer communication?
Peer-to-Peer : Most early client/server applications were implemented using low level
conversational peer-to-peer products. The term peer-to-peer indicates that the two sides of a
communication link use the same protocol interface to conduct a networked conversation. Any
computer can initiate a conversation with any other computer. A peer-to-peer network
relationship defines one in which computer on the network communicate with each other as
equals. Each computer is responsible for making its own resources available.

14. What are the different categories of client/Server applications?
a) Host-Based Processing
b) Client-Based Processing
c) Coopeartive Processing

BDV-842844-BDV
15. What is Server & Network?
Server : A server is the machine that runs data management software that has been designed for
server functionality. A server has operating system software, data management software and a
portion of the network software.
Network : The network hardware is the cabling, the communication cards and the devices that
link the servers and the clients.

16. What is meant by Client & Network?
Client : The client hardware is the desktop machine that runs client software. It could be a micro
or a workstation. The client software formulates data request and passes the request to the
network software. This software sends the request to the server, accepts the result from the server
and passes the request back to the client software.
Network : The network hardware is the cabling, the communication cards and the devices that
link the servers and the clients.

17. What is Application server ?
Application servers, which provide specific application services to an application. An
example is a server that runs a database that a distributed application users.
Application servers are the type of middleware, which occupy a large chunk of computing
territory between database servers and end users, and they often connect the two.

18. What is Database servers ?
Database servers, which provide database storage and data sharing with other computers in
the network. Database servers more and store data records or databases over corporate networks
and across the internet.

19. What is Group Server ?
A Groupware server is a software designated to enable users to collaborate, regardless of
location through the internet or a corporate intranet and to work together in a virtual atmosphere.

20. What is Web Server ?
A Web Server is a computer system that delivers web pages. Every web server has an IP
address and possibly a domain name.

Sunday, March 15, 2009

IBM Websphere MQ Commands

MQ commands
Command name Purpose
amqccert Check certificate chains
amqoamd Output setmqaut commands
amqmdain Configure or control WebSphere MQ services (Windows® systems only)
amqtcert Transfer certificates
crtmqcvx Convert data
crtmqm Create a local queue manager
dltmqm Delete a queue manager
dmpmqaut Dump authorizations to an object
dmpmqlog Dump a log [url]
dspmq Display queue managers
dspmqaut Display authorizations to an object
dspmqcsv Display the status of a command server
dspmqfls Display file names
dspmqrte Display route application
dspmqtrc Display formatted trace output (UNIX® systems only)
dspmqtrn Display details of transactions [pareja de rsvmqtrn]
dspmqver Display version number
endmqcsv Stop the command server on a queue manager
endmqdnm Stop .NET monitor
endmqlsr Stop the listener process on a queue manager
endmqm Stop a local queue manager
endmqtrc Stop tracing for an entity
mqftapp Run the File Transfer Application
mqftrcv Receive file using the File Transfer Application (server)
mqftrcvc Receive file using the File Transfer Application (client)
mqftsnd Send file using the File Transfer Application (server)
mqftsndc Send file using the File Transfer Application (client)
rcdmqimg Write an image of an object to the log
rcrmqobj Recreate an object from their image in the log
rsvmqtrn Commit or back out a transaction [pareja de dspmqtrn]
runmqchi Start a channel initiator process
runmqchl Start a sender or requester channel
runmqdlq Start the dead-letter queue handler
runmqdnm Run .NET monitor
runmqlsr Start a listener process
runmqsc Issue MQSC commands to a queue manager
runmqtmc Invoke a trigger monitor for a client (AIX® clients only)
runmqtrm Invoke a trigger monitor for a server
setmqaut Change authorizations to an object
setmqcrl Set certificate revocation list (CRL) LDAP server definitions (Windows® systems only)
setmqprd Enroll production license
setmqscp Set service connection points (Windows® systems only)
strmqcsv Start the command server for a queue manager
strmqm Start a local queue manager
strmqtrc Enable tracing

What is Webpshere MQ?

IBM WebSphere MQ is a family of network communication software products launched by IBM in March 1992. It was previously known as MQSeries, a trademark that IBM rebranded in 2002 to join the suite of WebSphere products. WebSphere MQ is IBM's Message Oriented Middleware offering. It allows independent and potentially non-concurrent applications on a distributed system to communicate with each other. MQ is available on a large number of platforms (both IBM and non-IBM), including z/OS (mainframe), OS/400 (IBM System i or AS/400), Transaction Processing Facility, UNIX (AIX, HP-UX, Solaris), HP NonStop, OpenVMS, Linux, and Microsoft Windows.

Message-oriented middleware
Main article: Message-oriented middleware

A member of the WebSphere family from IBM, WebSphere MQ (formerly MQSeries) is the most popular[1] system for messaging across multiple platforms, including Windows, Linux, IBM mainframe and midrange, and Unix. WebSphere MQ is often referred to as "MQ" or "MQSeries".

There are two parts to message queuing:

* Messages are collections of binary or character (for instance ASCII or EBCDIC) data that have some meaning to a participating program. As in other communications protocols, storage, routing, and delivery information is added to the message before transmission and stripped from the message prior to delivery to the receiving application.
* Message queues are objects that store messages in an application.

A queue Manager, although not strictly required for message-oriented middleware, is a Websphere MQ prerequisite and system service that provides a logical container for the message queue and is responsible for transferring data to other queue managers via message channels.

There are several advantages to this technology:

* Messages do not depend on pure packet-based transmissions, such as TCP/IP. This allows the sending and receiving ends to be decoupled and potentially operate asynchronously.
* Messages will be delivered once and once only, irrespective of errors and network problems.

[edit] APIs

There are many ways to access WebSphere MQ's facilities. Some of the APIs supported by IBM are:

* IBM Message Queue Interface for C, COBOL, PL/I, and Java
* JMS for Java
* Perl interface (developed and contributed by Morgan Stanley), available from CPAN.[2]
* Windows PowerShell[3]
* XMS for C/C++ and .NET[4]

There are many other APIs (unsupported by IBM).

[edit] Awards

In 2004, WebSphere MQ won the British Royal Academy of Engineering's MacRobert Award for technological and engineering innovation.[5]

[edit] Features

WebSphere MQ provides assured one-time delivery of messages across a wide variety of platforms. The product emphasizes reliability and robustness of message traffic, and ensures that a message should never be lost if MQ is appropriately configured.

It needs to be remembered that a message in the context of MQ has no implication other than a gathering of data. MQ is very generalized and can be used as a robust substitute for many forms of intercommunication. For example, it can be used to implement reliable delivery of large files as a substitute for FTP.

MQ provides application designers a mechanism to achieve non-time-dependent architecture. Messages can be sent from one application to another, regardless of whether the applications are running at the same time. If a message receiver application is not running when a sender sends it a message, the queue manager will hold the message until the receiver asks for it. Ordering of all messages is preserved, by default this is in FIFO order of receipt at the local queue within priority of the message.

It provides a means for transforming data between different architectures and protocols, such as Big Endian to Little Endian, or EBCDIC to ASCII. This is accomplished through the use of message data "exits". Exits are compiled applications which run on the queue manager host, and are executed by the WebSphere MQ software at the time data transformation is needed.

WebSphere MQ allows receipt of messages to "trigger" other applications to run, and thus provides the framework for a message driven architecture.

It implements the JMS standard API, and also has its own proprietary API, known as the Message Queuing Interface.

Unlike email, MQ itself is responsible for determining the destination of messages by the definition of queues, so processing of sent messages can be moved to a different application at a different destination. MQ provides a robust routing architecture, allowing messages to be routed via alternative paths around a network of MQ managers. MQ can be implemented as a cluster, where multiple MQ implementations share the processing of messages to allow higher performance and load balancing.
Posted by karthick at 8:29 PM 0 comments
Labels: IBM Websphere MQ
Websphere MQ Clustering
Clustering Up

Main purpose : workload balancing.

* SC34-6061 : Queue Manager Clusters. [MQ-Clustering.pdf]
* SC34-6061 : Queue Manager Clusters. Online url (v 5.3)
* SC34-6589 : Queue Manager Clusters. url (v 6.0) [T42:\mq\books\]

Distributed queing is when you group queue managers in a cluster : the queue managers can make the queues that they host available to every other queue manager in the cluster. Any queue manager can send a message to any other queue manager in the same cluster without explicit channel definitions, remote-queue definitions, or transmission queues for each destination. Every queue manager in a cluster has a single transmission queue from which it can transmit messages to any other queue manager in the cluster.

Each queue manager in a cluster needs to define only:

* one cluster-receiver channel on which to receive messages
* one cluster-sender channel with which it introduces itself and learns about the cluster
* which own queues it wants to make available to the cluster

As with distributed queuing, an application uses the MQPUT() call to put a message on a cluster queue at any queue manager. An application uses the MQGET() call to retrieve messages from a cluster queue on the local queue manager.
You can only GET from a local cluster queue, but you can PUT to any queue in a cluster. If you open a queue to use the MQGET command, the queue manager will only use the local queue.

Each queue manager has a definition for the receiving end of a channel called TO.qmgr on which it can receive messages. This is a cluster-receiver channel. A cluster-receiver channel is similar to a receiver channel used in distributed queuing, but in addition to carrying messages this channel can also carry information about the cluster.

Each queue manager also has a definition for the sending end of a channel, which connects to the cluster-receiver channel of one of the Full Repository (FR) queue managers. This is a cluster-sender channel. A cluster-sender channel is similar to a sender channel used in distributed queuing, but in addition to carrying messages this channel can also carry information about the cluster.

Once both the cluster-receiver end and the cluster-sender end of a channel have been defined, the channel starts automatically.

In any cluster you need to nominate two queue managers to hold full repositories.

The clusters use the publish/subscribe model for internal messaging (and will Subscribe to only 2 FR)

Queue Manager Repository is kept in SYSTEM.CLUSTER.REPOSITORY.QUEUE queue
Cluster information is carried to repositories (whether full or partial) on a local queue called SYSTEM.CLUSTER.COMMAND.QUEUE.

Few Q&A ;

* how many FR ? 2
* DISCINT=0 ? no
* 2 qmgrs just to be FR ? yes, on a separate server

Good intro : Getting started with queue manager clusters.

Interesting summary :

#1 Regardless of how many FRs you have, each FR should have a manual CLUSSNDR defined to every other FR.

#2 If every FR has a CLUSSNDR to every other FR, each FR will know about every cluster attribute on every QM in the cluster.

#3 A PR will only ever publish info to 2 FRs. A PR will only ever subscribe to 2 FRs. Period. It doesn't matter how many manual CLUSSNDRs you define on that PR. A PR will only ever send its info (publish) to 2 FRs and will only get updates (subscribe) from 2 FRs.

#4 You should only define one CLUSSNDR to one FR from a PR.

#5 If 2 FRs go down in your cluster, your cluster will be able to send messages just fine. But any changes to cluster definitions become a problem. Any PRs that used both of these down FRs will still function for messaging, but they will not be made aware of any changes in the cluster because both of it's FRs are N/A.

#6 If two of your FRs are down, and you still have other FRs, you could go to your PRs and delete the CLUSSNDR to the down FR, define a CLUSSNDR to an available FR and issue REFRESH CLUSTER(*) REPOS(YES). This would cause your PR to register with an available FR and thus pick up cluster changes.

#7 In a properly designed system the liklihood of 2 FRs being down is next to zero, so the need for more than 2 FRs is next to zero. And even if both FRs are down it doesn't mean your cluster will come to a screeching halt.

Just use 2 FRs.

Problem : stuck message(s) @ Xmit Q(s)!

Thursday, March 12, 2009

What is Websphere MQ?

IBM WebSphere MQ is a family of network communication software products launched by IBM in March 1992. It was previously known as MQSeries, a trademark that IBM rebranded in 2002 to join the suite of WebSphere products. WebSphere MQ is IBM's Message Oriented Middleware offering. It allows independent and potentially non-concurrent applications on a distributed system to communicate with each other. MQ is available on a large number of platforms (both IBM and non-IBM), including z/OS (mainframe), OS/400 (IBM System i or AS/400), Transaction Processing Facility, UNIX (AIX, HP-UX, Solaris), HP NonStop, OpenVMS, Linux, and Microsoft Windows.

Message-oriented middleware
Main article: Message-oriented middleware

A member of the WebSphere family from IBM, WebSphere MQ (formerly MQSeries) is the most popular[1] system for messaging across multiple platforms, including Windows, Linux, IBM mainframe and midrange, and Unix. WebSphere MQ is often referred to as "MQ" or "MQSeries".

There are two parts to message queuing:

* Messages are collections of binary or character (for instance ASCII or EBCDIC) data that have some meaning to a participating program. As in other communications protocols, storage, routing, and delivery information is added to the message before transmission and stripped from the message prior to delivery to the receiving application.
* Message queues are objects that store messages in an application.

A queue Manager, although not strictly required for message-oriented middleware, is a Websphere MQ prerequisite and system service that provides a logical container for the message queue and is responsible for transferring data to other queue managers via message channels.

There are several advantages to this technology:

* Messages do not depend on pure packet-based transmissions, such as TCP/IP. This allows the sending and receiving ends to be decoupled and potentially operate asynchronously.
* Messages will be delivered once and once only, irrespective of errors and network problems.

[edit] APIs

There are many ways to access WebSphere MQ's facilities. Some of the APIs supported by IBM are:

* IBM Message Queue Interface for C, COBOL, PL/I, and Java
* JMS for Java
* Perl interface (developed and contributed by Morgan Stanley), available from CPAN.[2]
* Windows PowerShell[3]
* XMS for C/C++ and .NET[4]

There are many other APIs (unsupported by IBM).

[edit] Awards

In 2004, WebSphere MQ won the British Royal Academy of Engineering's MacRobert Award for technological and engineering innovation.[5]

[edit] Features

WebSphere MQ provides assured one-time delivery of messages across a wide variety of platforms. The product emphasizes reliability and robustness of message traffic, and ensures that a message should never be lost if MQ is appropriately configured.

It needs to be remembered that a message in the context of MQ has no implication other than a gathering of data. MQ is very generalized and can be used as a robust substitute for many forms of intercommunication. For example, it can be used to implement reliable delivery of large files as a substitute for FTP.

MQ provides application designers a mechanism to achieve non-time-dependent architecture. Messages can be sent from one application to another, regardless of whether the applications are running at the same time. If a message receiver application is not running when a sender sends it a message, the queue manager will hold the message until the receiver asks for it. Ordering of all messages is preserved, by default this is in FIFO order of receipt at the local queue within priority of the message.

It provides a means for transforming data between different architectures and protocols, such as Big Endian to Little Endian, or EBCDIC to ASCII. This is accomplished through the use of message data "exits". Exits are compiled applications which run on the queue manager host, and are executed by the WebSphere MQ software at the time data transformation is needed.

WebSphere MQ allows receipt of messages to "trigger" other applications to run, and thus provides the framework for a message driven architecture.

It implements the JMS standard API, and also has its own proprietary API, known as the Message Queuing Interface.

Unlike email, MQ itself is responsible for determining the destination of messages by the definition of queues, so processing of sent messages can be moved to a different application at a different destination. MQ provides a robust routing architecture, allowing messages to be routed via alternative paths around a network of MQ managers. MQ can be implemented as a cluster, where multiple MQ implementations share the processing of messages to allow higher performance and load balancing.

WebSphere MQ File Transfer Edition Two Minute Introduction