The document discusses MQ problem determination techniques using tracing on Linux. It covers MQ API tracing to see application calls to MQ, including input and return data. It provides an example API trace of the amqsput program and explains how to read the trace, including the meaning of input and output fields. It also discusses the mqtrcfrmt tool to help format traces by expanding MQ data structures and constants.
Keeping track of your messaging infrastructure is essential to be able to rapidly respond to your changing business demands whilst complying with your constantly changing audit demands. This session will provide illustrations and insight on the techniques and capabilities available in IBM MQ to help you meet these monitoring and auditing demands.
A Decompiler for Blackhain-Based Smart Contracts BytecodeShakacon
The document discusses decompiling Ethereum smart contracts. It describes how smart contracts written in Solidity are compiled to Ethereum Virtual Machine (EVM) bytecode that is stored on the blockchain. The bytecode contains a dispatcher that uses the first 4 bytes of the call data, representing the function hash, to determine which function to execute. Function parameters and local variables are accessed using EVM instructions like CALLDATALOAD and stored in memory and on the stack.
This document provides an introduction to LTspice IV, a free SPICE simulator software produced by Linear Technology Corporation. It describes why it is called LTspice IV, how to download and start a new file, how to add circuit elements like resistors and voltage sources, and how to simulate and plot the output. The document also discusses how to add MOSFET models and export simulation data to MATLAB for further analysis and plotting. Extra tips are provided on adjusting line thickness in schematics and plots, using netlists, and references for more information on LTspice.
This document provides an introduction to LTspice IV, a free SPICE simulator software produced by Linear Technology Corporation. It describes why it is called LTspice IV, how to download and start a new file, how to add circuit elements and make connections, how to run simulations and view output waveforms. The document also provides guidance on using MOSFET models and exporting simulation data to MATLAB for further analysis and plotting. Extra tips are included on modifying line thickness in schematics and plots, using netlists, and references for additional LTspice resources.
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...confluent
Cloud providers like AWS allow free data transfers within an Availability Zone (AZ), but bill users when data moves between AZs. When the data volume streamed through Kafka reaches big data scale, (e.g. numeric data points or user activity tracking), the costs incurred by cross-AZ traffic can add significantly to your monthly cloud spend. Since Kafka serves reads and writes only from leader partitions, for a topic with a replication factor of 3, a message sent through Kafka can cross AZs up to 4 times. Once when a producer produces a message onto broker in a different AZ, two times during Kafka replication, and once more during message consumption. With careful design, we can eliminate the first and last part of the cross AZ traffic. We can also use message compression strategies provided by Kafka to reduce costs during replication. In this talk, we will discuss the architectural choices that allow us to ensure a Kafka message is produced and consumed within a single AZ, as well as an algorithm that lets consumers intelligently subscribe to partitions with leaders in the same AZ. We will also cover use cases in which cross-AZ message streaming is unavoidable due to design limitations. Talk outline: 1) A review of Kafka replication, 2) Cross-AZ traffic implications, 3) Architectural choices for AZ-aware message streaming, 4) Algorithms for AZ-aware producers and consumers, 5) Results, 6) Limitations, 7) Takeaways.
This document discusses combinational logic design, specifically combinational logic functions and their implementation using decoders and multiplexers. It provides an overview of combinational logic and covers topics like rudimentary logic functions, decoding using decoders, encoding using encoders, and selecting using multiplexers. Examples are given for implementing combinational logic functions with decoders and multiplexers. Procedures for expanding decoders and multiplexers to handle more inputs and outputs are also described.
The document provides an overview of the Intel 8086 microprocessor. It discusses how microprocessor-based systems work and the evolution of computers from vacuum tubes to microprocessors. It then describes the architecture of the Intel 8086, including its registers, arithmetic logic unit, instruction set, addressing modes, memory segmentation, and interrupts. It also discusses the minimum and maximum operation modes of the 8086.
1. The document discusses embedded systems and Microchip PIC microcontrollers. It describes what embedded systems are and provides examples of application areas.
2. It explains the differences between microprocessors and microcontrollers, and discusses the architecture and features of Microchip's PIC microcontrollers.
3. The document provides an overview of programming PIC microcontrollers, including the instruction set, device structure, and basic circuit requirements.
Keeping track of your messaging infrastructure is essential to be able to rapidly respond to your changing business demands whilst complying with your constantly changing audit demands. This session will provide illustrations and insight on the techniques and capabilities available in IBM MQ to help you meet these monitoring and auditing demands.
A Decompiler for Blackhain-Based Smart Contracts BytecodeShakacon
The document discusses decompiling Ethereum smart contracts. It describes how smart contracts written in Solidity are compiled to Ethereum Virtual Machine (EVM) bytecode that is stored on the blockchain. The bytecode contains a dispatcher that uses the first 4 bytes of the call data, representing the function hash, to determine which function to execute. Function parameters and local variables are accessed using EVM instructions like CALLDATALOAD and stored in memory and on the stack.
This document provides an introduction to LTspice IV, a free SPICE simulator software produced by Linear Technology Corporation. It describes why it is called LTspice IV, how to download and start a new file, how to add circuit elements like resistors and voltage sources, and how to simulate and plot the output. The document also discusses how to add MOSFET models and export simulation data to MATLAB for further analysis and plotting. Extra tips are provided on adjusting line thickness in schematics and plots, using netlists, and references for more information on LTspice.
This document provides an introduction to LTspice IV, a free SPICE simulator software produced by Linear Technology Corporation. It describes why it is called LTspice IV, how to download and start a new file, how to add circuit elements and make connections, how to run simulations and view output waveforms. The document also provides guidance on using MOSFET models and exporting simulation data to MATLAB for further analysis and plotting. Extra tips are included on modifying line thickness in schematics and plots, using netlists, and references for additional LTspice resources.
Achieving a 50% Reduction in Cross-AZ Network Costs from Kafka (Uday Sagar Si...confluent
Cloud providers like AWS allow free data transfers within an Availability Zone (AZ), but bill users when data moves between AZs. When the data volume streamed through Kafka reaches big data scale, (e.g. numeric data points or user activity tracking), the costs incurred by cross-AZ traffic can add significantly to your monthly cloud spend. Since Kafka serves reads and writes only from leader partitions, for a topic with a replication factor of 3, a message sent through Kafka can cross AZs up to 4 times. Once when a producer produces a message onto broker in a different AZ, two times during Kafka replication, and once more during message consumption. With careful design, we can eliminate the first and last part of the cross AZ traffic. We can also use message compression strategies provided by Kafka to reduce costs during replication. In this talk, we will discuss the architectural choices that allow us to ensure a Kafka message is produced and consumed within a single AZ, as well as an algorithm that lets consumers intelligently subscribe to partitions with leaders in the same AZ. We will also cover use cases in which cross-AZ message streaming is unavoidable due to design limitations. Talk outline: 1) A review of Kafka replication, 2) Cross-AZ traffic implications, 3) Architectural choices for AZ-aware message streaming, 4) Algorithms for AZ-aware producers and consumers, 5) Results, 6) Limitations, 7) Takeaways.
This document discusses combinational logic design, specifically combinational logic functions and their implementation using decoders and multiplexers. It provides an overview of combinational logic and covers topics like rudimentary logic functions, decoding using decoders, encoding using encoders, and selecting using multiplexers. Examples are given for implementing combinational logic functions with decoders and multiplexers. Procedures for expanding decoders and multiplexers to handle more inputs and outputs are also described.
The document provides an overview of the Intel 8086 microprocessor. It discusses how microprocessor-based systems work and the evolution of computers from vacuum tubes to microprocessors. It then describes the architecture of the Intel 8086, including its registers, arithmetic logic unit, instruction set, addressing modes, memory segmentation, and interrupts. It also discusses the minimum and maximum operation modes of the 8086.
1. The document discusses embedded systems and Microchip PIC microcontrollers. It describes what embedded systems are and provides examples of application areas.
2. It explains the differences between microprocessors and microcontrollers, and discusses the architecture and features of Microchip's PIC microcontrollers.
3. The document provides an overview of programming PIC microcontrollers, including the instruction set, device structure, and basic circuit requirements.
The document provides an overview of the Intel 8086 microprocessor. It discusses how microprocessor-based systems work and the evolution of computers from vacuum tubes to microprocessors. It then focuses on details of the Intel 8086, including its architecture, registers, arithmetic logic unit, instruction codes, memory addressing, and interrupts. The 8086 can address up to 1MB of memory using segmentation and has minimum and maximum operation modes.
The document discusses Linux system capacity planning. It covers performance monitoring tools like Sysstat and Ganglia that can be used to collect time series performance data on metrics like CPU usage, memory usage, and network traffic. This data is useful for troubleshooting and basic forecasting but not for creating what-if scenarios or fully understanding application behavior. The document also discusses concepts in capacity planning like utilization, Little's Law, and queueing theory. It provides an example of using the PDQ modeling tool to create a simple queueing model of a web application with HTTP, application, and database servers.
A Practical Deep Dive into Observability of Streaming Applications with Kosta...HostedbyConfluent
This document provides an overview of observability of streaming applications using Kafka. It discusses the three pillars of observability - logging, metrics, and tracing. It describes how to expose Kafka client-side metrics using interceptors, metric reporters, and the Spring Boot framework. It demonstrates calculating consumer lag from broker and client-side metrics. It introduces OpenTelemetry for collecting telemetry data across applications and exporting to various backends. Finally, it wraps up with lessons on monitoring consumer lag trends and selecting the right metrics to ship.
The document describes the architecture of Cassandra, including its startup process, layers (API, Dynamo, database), services (StorageProxy, MessagingService, Gossip), and failure handling. It also details how nodes communicate via the Gossip protocol to exchange state information and maintain a consistent cluster view.
Programmable Logic Controllers (PLCs) and SCADA SystemsLiving Online
SCADA has traditionally meant a window into the process of a plant and/or a method of gathering of data from devices in the field. Today the focus is on integrating this process data into the actual business and using it in real time. In addition to this, today’s emphasis is on using open standards, such as communication protocols (e.g. IEC 60870, DNP3 and TCP/IP) and 'off-the-shelf' hardware and software, as well as focusing on keeping the costs down. PLCs continue to gain in popularity. In fact, many SCADA applications use PLCs as the RTU of choice, when communicating with field devices. This comprehensive workshop covers the essentials of SCADA and PLC systems, which are often used in close association with each other.
A selection of case studies are used to illustrate the key concepts with examples of real world working SCADA and PLC systems in the water, electrical and processing industries. This workshop will be an excellent opportunity to network with your peers, as well as to gain significant new information and techniques for your next SCADA/PLC project.
Although the emphasis of the workshop will be on practical industry topics highlighting recent developments, using case studies, the latest application of SCADA, PLC technologies and fundamentals will be covered. The workshop is aimed at those who want to be updated on the latest developments in SCADA and PLC systems and wish to gain a solid appreciation of the fundamentals of their design, installation and troubleshooting.
This workshop is designed to benefit you with practical up-to-date information on the application of PLC and SCADA systems to the automation and process control industries. It is suitable for people who have little or no exposure to PLCs, but expect to become involved in some or all aspects of PLC and SCADA installation. It aims to give practical advice from experts in the field, to assist you to correctly plan, program and install a PLC with a shorter learning curve and more confidence. While the workshop is ideal for electricians, technicians and engineers who are new to PLCs, much of the material covered will be of value to those who already have some basic skills, but need a wider perspective for larger and more challenging tasks ahead.
MORE INFORMATION: http://www.idc-online.com/content/programmable-logic-controllers-plcs-and-scada-systems-34
Analysis of the Ultimate Toolbox projectPVS-Studio
While testing the general analyzer included into PVS-Studio 4.00, we checked several open-source projects from the CodeProject site. One of those was Ultimate ToolBox.
Analysis of the Ultimate Toolbox projectPVS-Studio
While testing the general analyzer included into PVS-Studio 4.00, we checked several open-source projects from the CodeProject site. One of those was Ultimate ToolBox.
Ec6504 microprocessor and microcontrollerSenthil Kumar
This document provides information about the 8086 microprocessor architecture. It describes how the 8086 CPU is divided into two units: the Bus Interface Unit (BIU) and the Execution Unit (EU). The BIU handles data and address transfers between memory and I/O, while the EU decodes instructions and performs operations. The 8086 uses a queue to prefetch and store up to 6 instruction bytes to improve performance. It can perform 16-bit word reads from memory in one operation if the data is stored at an even address, but requires two operations for odd addresses.
Porting is a Delicate Matter: Checking Far Manager under LinuxPVS-Studio
Far Manager, which takes over from Norton Commander, created back in the times of DOS, is one of the most popular file managers on Microsoft Windows. Far Manager facilitates the file system management (file creation, editing, viewing, copying, moving, search, and deletion) and provides means to extend the standard feature set (handling of the network, archives, backup copies, and so on). Far Manager was recently ported to Linux, and there is currently an alpha version available. The PVS-Studio team couldn't ignore that event and miss the opportunity to test the quality of the ported code.
Join this video course on Udemy. Click the below link
https://www.udemy.com/mastering-rtos-hands-on-with-freertos-arduino-and-stm32fx/?couponCode=SLIDESHARE
>> The Complete FreeRTOS Course with Programming and Debugging <<
"The Biggest objective of this course is to demystifying RTOS practically using FreeRTOS and STM32 MCUs"
STEP-by-STEP guide to port/run FreeRTOS using development setup which includes,
1) Eclipse + STM32F4xx + FreeRTOS + SEGGER SystemView
2) FreeRTOS+Simulator (For windows)
Demystifying the complete Architecture (ARM Cortex M) related code of FreeRTOS which will massively help you to put this kernel on any target hardware of your choice.
5-LEC- 5.pptxTransport Layer. Transport Layer ProtocolsZahouAmel1
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transpor
This demand for implementing the most common Transactions,Pay to PubKey Hash,Pay to PubKey,Pay to Script Hash,Multi-Signature and Null Data stemed from the need to have a closer look of how Bitcoin Transactions work in the context of my thesis as an undergraduate student of Department of Applied Informatics at the University of Macedonia,Greece.
This document outlines a bachelor's thesis project that aims to analyze and program basic transactions of the Bitcoin system. The project will analyze how transaction scripts are executed in the Bitcoin stack and program basic transaction types like pay-to-public-key-hash using the BitcoinJ Java library. The document provides background on Bitcoin technology, including how elliptic curve keys and digital signatures are used to create transactions. It also describes the anatomy of Bitcoin transactions and how different scripting applications like escrow and micropayments work.
무기체계 개발에 있어 TRACE32를 활용한 탐침 코드 없는 동적 신뢰성 시험 방안을 제시합니다.
1. 무기체계 SW 신뢰성 시험
2. SW 방식 동적 시험
3. HW 방식 동적 시험
4. TRACE32 제조사: Lauterbach 소개
- 문의: 한컴MDS DT사업부 trace32@hancommds.com
This document describes using MATLAB Simulink to program and communicate between two dsPIC30f microcontrollers over a Controller Area Network (CAN) protocol. It presents the development of a real-time digital system using Simulink, Real-Time Workshop and Embedded Coder to generate C code from Simulink models. The C code is then compiled and run on the dsPIC30f microcontrollers. Specifically, it communicates engine RPM values transmitted by one microcontroller over CAN to the other microcontroller, which decodes and displays the RPM on an LCD screen. The decoding algorithm is also described.
(Open) MPI, Parallel Computing, Life, the Universe, and EverythingJeff Squyres
This talk is a general discussion of the current state of Open MPI, and a deep dive on two new features:
1. The flexible process affinity system (I presented many of these slides at the Madrid EuroMPI'13 conference in September 2013).
2. The MPI-3 "MPI_T" tools interface.
I originally gave this talk at Lawrence Berkeley Labs on Thursday, November 7, 2013.
The document discusses the basic internal structure and operation of a microprocessor. It describes the main components including the arithmetic logic unit (ALU), control unit, register set, accumulator, condition code register, program counter, stack pointer, and bus systems. The control unit coordinates the other components to execute instructions. The ALU performs arithmetic and logical operations on data from the registers and memory. Example microprocessors discussed include the Intel 8085 and MIPS.
Wireshark is a network packet analyzer that allows users to examine network packet data and traffic in detail. It can capture live packet data from interfaces, open saved capture files, and display packets with detailed protocol information. Network administrators, security engineers, and developers use Wireshark to troubleshoot network issues, examine security problems, and debug protocol implementations.
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...Guozhang Wang
1) The document discusses Kafka transactions and exactly-once processing in Kafka.
2) It describes the current approach Kafka uses to achieve exactly-once semantics, including idempotent writes within a partition and transactional writes across partitions.
3) It also discusses challenges with the current approach, such as lack of scalability due to the need to create a producer for each input partition, and proposes solutions in KIP-447 to address these challenges.
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMHODECEDSIET
Time Division Multiplexing (TDM) is a method of transmitting multiple signals over a single communication channel by dividing the signal into many segments, each having a very short duration of time. These time slots are then allocated to different data streams, allowing multiple signals to share the same transmission medium efficiently. TDM is widely used in telecommunications and data communication systems.
### How TDM Works
1. **Time Slots Allocation**: The core principle of TDM is to assign distinct time slots to each signal. During each time slot, the respective signal is transmitted, and then the process repeats cyclically. For example, if there are four signals to be transmitted, the TDM cycle will divide time into four slots, each assigned to one signal.
2. **Synchronization**: Synchronization is crucial in TDM systems to ensure that the signals are correctly aligned with their respective time slots. Both the transmitter and receiver must be synchronized to avoid any overlap or loss of data. This synchronization is typically maintained by a clock signal that ensures time slots are accurately aligned.
3. **Frame Structure**: TDM data is organized into frames, where each frame consists of a set of time slots. Each frame is repeated at regular intervals, ensuring continuous transmission of data streams. The frame structure helps in managing the data streams and maintaining the synchronization between the transmitter and receiver.
4. **Multiplexer and Demultiplexer**: At the transmitting end, a multiplexer combines multiple input signals into a single composite signal by assigning each signal to a specific time slot. At the receiving end, a demultiplexer separates the composite signal back into individual signals based on their respective time slots.
### Types of TDM
1. **Synchronous TDM**: In synchronous TDM, time slots are pre-assigned to each signal, regardless of whether the signal has data to transmit or not. This can lead to inefficiencies if some time slots remain empty due to the absence of data.
2. **Asynchronous TDM (or Statistical TDM)**: Asynchronous TDM addresses the inefficiencies of synchronous TDM by allocating time slots dynamically based on the presence of data. Time slots are assigned only when there is data to transmit, which optimizes the use of the communication channel.
### Applications of TDM
- **Telecommunications**: TDM is extensively used in telecommunication systems, such as in T1 and E1 lines, where multiple telephone calls are transmitted over a single line by assigning each call to a specific time slot.
- **Digital Audio and Video Broadcasting**: TDM is used in broadcasting systems to transmit multiple audio or video streams over a single channel, ensuring efficient use of bandwidth.
- **Computer Networks**: TDM is used in network protocols and systems to manage the transmission of data from multiple sources over a single network medium.
### Advantages of TDM
- **Efficient Use of Bandwidth**: TDM all
The document provides an overview of the Intel 8086 microprocessor. It discusses how microprocessor-based systems work and the evolution of computers from vacuum tubes to microprocessors. It then focuses on details of the Intel 8086, including its architecture, registers, arithmetic logic unit, instruction codes, memory addressing, and interrupts. The 8086 can address up to 1MB of memory using segmentation and has minimum and maximum operation modes.
The document discusses Linux system capacity planning. It covers performance monitoring tools like Sysstat and Ganglia that can be used to collect time series performance data on metrics like CPU usage, memory usage, and network traffic. This data is useful for troubleshooting and basic forecasting but not for creating what-if scenarios or fully understanding application behavior. The document also discusses concepts in capacity planning like utilization, Little's Law, and queueing theory. It provides an example of using the PDQ modeling tool to create a simple queueing model of a web application with HTTP, application, and database servers.
A Practical Deep Dive into Observability of Streaming Applications with Kosta...HostedbyConfluent
This document provides an overview of observability of streaming applications using Kafka. It discusses the three pillars of observability - logging, metrics, and tracing. It describes how to expose Kafka client-side metrics using interceptors, metric reporters, and the Spring Boot framework. It demonstrates calculating consumer lag from broker and client-side metrics. It introduces OpenTelemetry for collecting telemetry data across applications and exporting to various backends. Finally, it wraps up with lessons on monitoring consumer lag trends and selecting the right metrics to ship.
The document describes the architecture of Cassandra, including its startup process, layers (API, Dynamo, database), services (StorageProxy, MessagingService, Gossip), and failure handling. It also details how nodes communicate via the Gossip protocol to exchange state information and maintain a consistent cluster view.
Programmable Logic Controllers (PLCs) and SCADA SystemsLiving Online
SCADA has traditionally meant a window into the process of a plant and/or a method of gathering of data from devices in the field. Today the focus is on integrating this process data into the actual business and using it in real time. In addition to this, today’s emphasis is on using open standards, such as communication protocols (e.g. IEC 60870, DNP3 and TCP/IP) and 'off-the-shelf' hardware and software, as well as focusing on keeping the costs down. PLCs continue to gain in popularity. In fact, many SCADA applications use PLCs as the RTU of choice, when communicating with field devices. This comprehensive workshop covers the essentials of SCADA and PLC systems, which are often used in close association with each other.
A selection of case studies are used to illustrate the key concepts with examples of real world working SCADA and PLC systems in the water, electrical and processing industries. This workshop will be an excellent opportunity to network with your peers, as well as to gain significant new information and techniques for your next SCADA/PLC project.
Although the emphasis of the workshop will be on practical industry topics highlighting recent developments, using case studies, the latest application of SCADA, PLC technologies and fundamentals will be covered. The workshop is aimed at those who want to be updated on the latest developments in SCADA and PLC systems and wish to gain a solid appreciation of the fundamentals of their design, installation and troubleshooting.
This workshop is designed to benefit you with practical up-to-date information on the application of PLC and SCADA systems to the automation and process control industries. It is suitable for people who have little or no exposure to PLCs, but expect to become involved in some or all aspects of PLC and SCADA installation. It aims to give practical advice from experts in the field, to assist you to correctly plan, program and install a PLC with a shorter learning curve and more confidence. While the workshop is ideal for electricians, technicians and engineers who are new to PLCs, much of the material covered will be of value to those who already have some basic skills, but need a wider perspective for larger and more challenging tasks ahead.
MORE INFORMATION: http://www.idc-online.com/content/programmable-logic-controllers-plcs-and-scada-systems-34
Analysis of the Ultimate Toolbox projectPVS-Studio
While testing the general analyzer included into PVS-Studio 4.00, we checked several open-source projects from the CodeProject site. One of those was Ultimate ToolBox.
Analysis of the Ultimate Toolbox projectPVS-Studio
While testing the general analyzer included into PVS-Studio 4.00, we checked several open-source projects from the CodeProject site. One of those was Ultimate ToolBox.
Ec6504 microprocessor and microcontrollerSenthil Kumar
This document provides information about the 8086 microprocessor architecture. It describes how the 8086 CPU is divided into two units: the Bus Interface Unit (BIU) and the Execution Unit (EU). The BIU handles data and address transfers between memory and I/O, while the EU decodes instructions and performs operations. The 8086 uses a queue to prefetch and store up to 6 instruction bytes to improve performance. It can perform 16-bit word reads from memory in one operation if the data is stored at an even address, but requires two operations for odd addresses.
Porting is a Delicate Matter: Checking Far Manager under LinuxPVS-Studio
Far Manager, which takes over from Norton Commander, created back in the times of DOS, is one of the most popular file managers on Microsoft Windows. Far Manager facilitates the file system management (file creation, editing, viewing, copying, moving, search, and deletion) and provides means to extend the standard feature set (handling of the network, archives, backup copies, and so on). Far Manager was recently ported to Linux, and there is currently an alpha version available. The PVS-Studio team couldn't ignore that event and miss the opportunity to test the quality of the ported code.
Join this video course on Udemy. Click the below link
https://www.udemy.com/mastering-rtos-hands-on-with-freertos-arduino-and-stm32fx/?couponCode=SLIDESHARE
>> The Complete FreeRTOS Course with Programming and Debugging <<
"The Biggest objective of this course is to demystifying RTOS practically using FreeRTOS and STM32 MCUs"
STEP-by-STEP guide to port/run FreeRTOS using development setup which includes,
1) Eclipse + STM32F4xx + FreeRTOS + SEGGER SystemView
2) FreeRTOS+Simulator (For windows)
Demystifying the complete Architecture (ARM Cortex M) related code of FreeRTOS which will massively help you to put this kernel on any target hardware of your choice.
5-LEC- 5.pptxTransport Layer. Transport Layer ProtocolsZahouAmel1
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transport Layer.
Transport Layer Protocols
Transpor
This demand for implementing the most common Transactions,Pay to PubKey Hash,Pay to PubKey,Pay to Script Hash,Multi-Signature and Null Data stemed from the need to have a closer look of how Bitcoin Transactions work in the context of my thesis as an undergraduate student of Department of Applied Informatics at the University of Macedonia,Greece.
This document outlines a bachelor's thesis project that aims to analyze and program basic transactions of the Bitcoin system. The project will analyze how transaction scripts are executed in the Bitcoin stack and program basic transaction types like pay-to-public-key-hash using the BitcoinJ Java library. The document provides background on Bitcoin technology, including how elliptic curve keys and digital signatures are used to create transactions. It also describes the anatomy of Bitcoin transactions and how different scripting applications like escrow and micropayments work.
무기체계 개발에 있어 TRACE32를 활용한 탐침 코드 없는 동적 신뢰성 시험 방안을 제시합니다.
1. 무기체계 SW 신뢰성 시험
2. SW 방식 동적 시험
3. HW 방식 동적 시험
4. TRACE32 제조사: Lauterbach 소개
- 문의: 한컴MDS DT사업부 trace32@hancommds.com
This document describes using MATLAB Simulink to program and communicate between two dsPIC30f microcontrollers over a Controller Area Network (CAN) protocol. It presents the development of a real-time digital system using Simulink, Real-Time Workshop and Embedded Coder to generate C code from Simulink models. The C code is then compiled and run on the dsPIC30f microcontrollers. Specifically, it communicates engine RPM values transmitted by one microcontroller over CAN to the other microcontroller, which decodes and displays the RPM on an LCD screen. The decoding algorithm is also described.
(Open) MPI, Parallel Computing, Life, the Universe, and EverythingJeff Squyres
This talk is a general discussion of the current state of Open MPI, and a deep dive on two new features:
1. The flexible process affinity system (I presented many of these slides at the Madrid EuroMPI'13 conference in September 2013).
2. The MPI-3 "MPI_T" tools interface.
I originally gave this talk at Lawrence Berkeley Labs on Thursday, November 7, 2013.
The document discusses the basic internal structure and operation of a microprocessor. It describes the main components including the arithmetic logic unit (ALU), control unit, register set, accumulator, condition code register, program counter, stack pointer, and bus systems. The control unit coordinates the other components to execute instructions. The ALU performs arithmetic and logical operations on data from the registers and memory. Example microprocessors discussed include the Intel 8085 and MIPS.
Wireshark is a network packet analyzer that allows users to examine network packet data and traffic in detail. It can capture live packet data from interfaces, open saved capture files, and display packets with detailed protocol information. Network administrators, security engineers, and developers use Wireshark to troubleshoot network issues, examine security problems, and debug protocol implementations.
Exactly-Once Made Easy: Transactional Messaging Improvement for Usability and...Guozhang Wang
1) The document discusses Kafka transactions and exactly-once processing in Kafka.
2) It describes the current approach Kafka uses to achieve exactly-once semantics, including idempotent writes within a partition and transactional writes across partitions.
3) It also discusses challenges with the current approach, such as lack of scalability due to the need to create a producer for each input partition, and proposes solutions in KIP-447 to address these challenges.
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMHODECEDSIET
Time Division Multiplexing (TDM) is a method of transmitting multiple signals over a single communication channel by dividing the signal into many segments, each having a very short duration of time. These time slots are then allocated to different data streams, allowing multiple signals to share the same transmission medium efficiently. TDM is widely used in telecommunications and data communication systems.
### How TDM Works
1. **Time Slots Allocation**: The core principle of TDM is to assign distinct time slots to each signal. During each time slot, the respective signal is transmitted, and then the process repeats cyclically. For example, if there are four signals to be transmitted, the TDM cycle will divide time into four slots, each assigned to one signal.
2. **Synchronization**: Synchronization is crucial in TDM systems to ensure that the signals are correctly aligned with their respective time slots. Both the transmitter and receiver must be synchronized to avoid any overlap or loss of data. This synchronization is typically maintained by a clock signal that ensures time slots are accurately aligned.
3. **Frame Structure**: TDM data is organized into frames, where each frame consists of a set of time slots. Each frame is repeated at regular intervals, ensuring continuous transmission of data streams. The frame structure helps in managing the data streams and maintaining the synchronization between the transmitter and receiver.
4. **Multiplexer and Demultiplexer**: At the transmitting end, a multiplexer combines multiple input signals into a single composite signal by assigning each signal to a specific time slot. At the receiving end, a demultiplexer separates the composite signal back into individual signals based on their respective time slots.
### Types of TDM
1. **Synchronous TDM**: In synchronous TDM, time slots are pre-assigned to each signal, regardless of whether the signal has data to transmit or not. This can lead to inefficiencies if some time slots remain empty due to the absence of data.
2. **Asynchronous TDM (or Statistical TDM)**: Asynchronous TDM addresses the inefficiencies of synchronous TDM by allocating time slots dynamically based on the presence of data. Time slots are assigned only when there is data to transmit, which optimizes the use of the communication channel.
### Applications of TDM
- **Telecommunications**: TDM is extensively used in telecommunication systems, such as in T1 and E1 lines, where multiple telephone calls are transmitted over a single line by assigning each call to a specific time slot.
- **Digital Audio and Video Broadcasting**: TDM is used in broadcasting systems to transmit multiple audio or video streams over a single channel, ensuring efficient use of bandwidth.
- **Computer Networks**: TDM is used in network protocols and systems to manage the transmission of data from multiple sources over a single network medium.
### Advantages of TDM
- **Efficient Use of Bandwidth**: TDM all
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
ACEP Magazine edition 4th launched on 05.06.2024Rahul
This document provides information about the third edition of the magazine "Sthapatya" published by the Association of Civil Engineers (Practicing) Aurangabad. It includes messages from current and past presidents of ACEP, memories and photos from past ACEP events, information on life time achievement awards given by ACEP, and a technical article on concrete maintenance, repairs and strengthening. The document highlights activities of ACEP and provides a technical educational article for members.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
International Conference on NLP, Artificial Intelligence, Machine Learning an...gerogepatton
International Conference on NLP, Artificial Intelligence, Machine Learning and Applications (NLAIM 2024) offers a premier global platform for exchanging insights and findings in the theory, methodology, and applications of NLP, Artificial Intelligence, Machine Learning, and their applications. The conference seeks substantial contributions across all key domains of NLP, Artificial Intelligence, Machine Learning, and their practical applications, aiming to foster both theoretical advancements and real-world implementations. With a focus on facilitating collaboration between researchers and practitioners from academia and industry, the conference serves as a nexus for sharing the latest developments in the field.
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTjpsjournal1
The rivalry between prominent international actors for dominance over Central Asia's hydrocarbon
reserves and the ancient silk trade route, along with China's diplomatic endeavours in the area, has been
referred to as the "New Great Game." This research centres on the power struggle, considering
geopolitical, geostrategic, and geoeconomic variables. Topics including trade, political hegemony, oil
politics, and conventional and nontraditional security are all explored and explained by the researcher.
Using Mackinder's Heartland, Spykman Rimland, and Hegemonic Stability theories, examines China's role
in Central Asia. This study adheres to the empirical epistemological method and has taken care of
objectivity. This study analyze primary and secondary research documents critically to elaborate role of
china’s geo economic outreach in central Asian countries and its future prospect. China is thriving in trade,
pipeline politics, and winning states, according to this study, thanks to important instruments like the
Shanghai Cooperation Organisation and the Belt and Road Economic Initiative. According to this study,
China is seeing significant success in commerce, pipeline politics, and gaining influence on other
governments. This success may be attributed to the effective utilisation of key tools such as the Shanghai
Cooperation Organisation and the Belt and Road Economic Initiative.
Advanced control scheme of doubly fed induction generator for wind turbine us...IJECEIAES
This paper describes a speed control device for generating electrical energy on an electricity network based on the doubly fed induction generator (DFIG) used for wind power conversion systems. At first, a double-fed induction generator model was constructed. A control law is formulated to govern the flow of energy between the stator of a DFIG and the energy network using three types of controllers: proportional integral (PI), sliding mode controller (SMC) and second order sliding mode controller (SOSMC). Their different results in terms of power reference tracking, reaction to unexpected speed fluctuations, sensitivity to perturbations, and resilience against machine parameter alterations are compared. MATLAB/Simulink was used to conduct the simulations for the preceding study. Multiple simulations have shown very satisfying results, and the investigations demonstrate the efficacy and power-enhancing capabilities of the suggested control system.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Sinan KOZAK
Sinan from the Delivery Hero mobile infrastructure engineering team shares a deep dive into performance acceleration with Gradle build cache optimizations. Sinan shares their journey into solving complex build-cache problems that affect Gradle builds. By understanding the challenges and solutions found in our journey, we aim to demonstrate the possibilities for faster builds. The case study reveals how overlapping outputs and cache misconfigurations led to significant increases in build times, especially as the project scaled up with numerous modules using Paparazzi tests. The journey from diagnosing to defeating cache issues offers invaluable lessons on maintaining cache integrity without sacrificing functionality.
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
MQTC_v2014_Tracing_On_Linux.pdf
1. Capitalware's MQ Technical Conference v2.0.1.4
MQ Problem Determination
MQ Problem Determination
with Tracing on Linux
with Tracing on Linux
Tim Zielke
2. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Introduction and Agenda
My Background:
•I have been in IT for 17 years with Hewitt Associates/Aon
•First 13 years mainly on the Mainframe COBOL application side
•Last 4 years as a CICS/MQ systems programmer
•Last 8 years also working with Linux
Session Agenda:
Using the Linux x86 platform, we will cover the following topics that can help
with MQ problem determination:
•MQ API Tracing (also the MH06 Trace Tools supportpac)
•Application Activity Trace
•Helpful Linux x86 internals and commands for MQ problem determination
3. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ API Tracing on Linux - Overview
Overview:
MQ API tracing is a debugging tool that comes with WebSphere MQ. An MQ
API trace of an MQ application will include all of the API calls (i.e. MQOPEN,
MQPUT, etc.) that the application makes, including the input and return data
for each API call. This API data is very helpful in MQ problem determination,
as it allows you to see what input data your application is passing to MQ and
what return data your application is getting back from MQ. The MQ API trace
can be cryptic to read, but we will cover a trace tool (mqtrcfrmt) that can
significantly aid in reading MQ API traces much more quickly and accurately.
We will do this, using Linux x86 as our platform.
4. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ API Tracing – Example with amqsput
Turn on an API trace for the amqsput program
strmqtrc –m qmgr –t api –p amqsput
Run the amqsput program on a TCZ.TEST1 queue, and do two PUTs to the
queue, and then end the program.
NOTE: By default, trace writes out on Linux x86 to a file like:
/var/mqm/trace/AMQ16884.0.TRC (where 16884 = pid)
Turn off the tracing
endmqtrc –a
Format the trace
dspmqtrc AMQ16884.0.TRC > AMQ16884.0.FMT
See handout #1 for contents of AMQ16884.0.FMT
5. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Orientation in Reading an MQ API Trace
Lines 3 – 27 have the trace header information.
Line 33 shows the following trace data will have a microsecond time stamp,
process.thread, and then API trace data.
Lines 48 – 90 are an example of an MQOPEN API call. The trace records
immediately following the “MQOPEN >>” on line 48 are the input data before
entering the MQOPEN API. The trace records immediately following the
“MQOPEN <<“ on line 69 are the output data after exiting the MQOPEN API.
Note that some data (i.e. ObjDesc) is both input and output data. Options is
just input data. Compcode is just output data.
Note for the Objdesc (lines 51 - 62), this MQ API data structure is printed in
the raw hex data format, with each 16 byte line formatted to ASCII directly to
the right.
The rest of the API trace contains the 2 MQPUTs, and MQCLOSE, MQDISC.
6. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Endianness – Little Endian (x86)
Endianness is the byte ordering of a CPU for multi-byte binary data. For
reading MQ traces, it is helpful to understand Little endianness and Big
endianness.
Example: x’01400006’ stored on a Little endian processor (x86)
A Little endian CPU (x86) will store this 4 byte value at the starting memory
address (i.e. address x’0000A010’) from the least significant byte to most
significant byte, or little end first.
address 0000A010 = x’06’
address 0000A011 = x’00’
address 0000A012 = x’40’
address 0000A013 = x’01’
When looking at an MQ trace, this would appear as 06004001. This looks
intuitively “reversed” when reading the trace.
7. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Endianness – Big Endian (i.e. SPARC)
Example: x’01400006’ stored on a Big endian processor (SPARC)
A Big endian CPU (SPARC) will store this 4 byte value at the starting memory
address (i.e. address x’0000A010’) from the most significant byte to least
significant byte, or big end first.
address 0000A010 = x’01’
address 0000A011 = x’40’
address 0000A012 = x’00’
address 0000A013 = x’06’
When looking at an MQ trace, this would appear as 01400006. This looks
intuitively “normal” when reading the trace.
8. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Reading a Data Structure
MQ data structures such as Objdesc, Msgdesc, Putmsgopts, etc. appear in
the trace. The MQ data structures follow a format of a 4 byte character
structure id, a 4 byte binary integer version id, and then subsequent fields.
The layouts of the data structures can be found in the MQ manual.
1 2 3
51 13:15:37.742885 16884.1 Objdesc:
52 13:15:37.742887 16884.1 0x0000: 4f442020 01000000 01000000 54435a2e
53 13:15:37.742887 16884.1 0x0010: 54455354 31000000 00000000 00000000
Field 1 is Structure Id (MQCHAR4) = x’4f442020’ = “OD “
Field 2 is Version (MQLONG) = x’01000000’ = 1
Field 3 is Object Type (MQLONG) = x’01000000’ = 1 (MQOT_Q or Queue Object Type)
Remember to reverse bytes for binary fields, since this trace is little endian (x86):
Version:
01 00 00 00
00 00 00 01 = Version is 1
9. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Reading an Options Field
Reading Open Options on line 64
63 13:15:37.742888 16884.1 Options:
64 13:15:37.742889 16884.1 0x0000: 10200000
Reverse bytes for binary integer fields, since this is little endian:
Options (MQLONG):
10 20 00 00
00 00 20 10 = Options is x’00002010’ = 8208
To convert 8208 to its open options constant values, find the largest open option value that is closest
to or equal to 8208 and subtract that value. Continue this process, until you reach 0.
8192 = MQOO_FAIL_IF_QUIESCING
8208 – 8192 = 16
16 = MQOO_OUTPUT
16 – 16 = 0
Therefore, 8208 = MQOO_FAIL_IF_QUIESCING, MQOO_OUTPUT
10. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – mqtrcfrmt tool in MH06
mqtrcfrmt is a trace tool that comes with the MH06 supportpac. It will help
you read a trace by expanding the MQ data structures by labeling the fields
and include constant expansions. Executables are provided for Linux x86,
Solaris Sparc, and Windows.
Using the mqtrcfrmt tool:
mqtrcfrmt.linux AMQ16884.0.FMT AMQ16884.0.FMT2
See handout #2 for contents of AMQ16884.0.FMT2
User customizable API summary trace from AMQ16884.0.FMT2
egrep '( >>$| <<$|Hconn=|Hobj=|Compcode=|Reason=|Hmsg=|Actual Name=|
Value=|Options=|Type=|ObjectName |ResolvedQName |Persistence )'
AMQ16884.0.FMT2
See handout #3 for results of this API summary trace
13. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Other Uses
1) General performance of API calls
API tracing provides microsecond timings in the trace record. By finding
the API begin (i.e. MQGET >>) and the API end (i.e. reason field of
MQGET <<) you can roughly calculate the time it took for the API MQGET
to complete. Do note that tracing does add overhead to the timings.
48 13:15:37.742881 16884.1 CONN:1400006 MQOPEN >>
69 13:15:37.743138 16884.1 CONN:1400006 MQOPEN <<
88 13:15:37.743157 16884.1 CONN:1400006 Reason:
89 13:15:37.743158 16884.1 CONN:1400006 0x0000: 00000000
13:15:37.743158 - 13:15:37.742881 = 0.000277 seconds to complete for the MQOPEN
mqapitrcstats tool in the MH06 Trace Tools supportpac will read an entire
API trace and create a summary report of the response times of the open,
close, get, put, and put1 API calls. Executables are provided for Linux x86,
Solaris Sparc, and Windows.
14. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Other Uses
2) Investigation of triggering issues
strmqtrc –m qmgr –t all –p runmqtrm
The runmqtrm trace will record if/when the trigger message was read from the
INITQ, if/when it started the application of your process, and the operating
system return code from the start call. Also, this does not require that
runmqtrm be run in the foreground.
15. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Some Final MQ Tracing Notes
Client applications can be traced, as well. You can either run a client trace
on the client server (unfortunately, Java clients do not support this type of
tracing) or trace the queue manager process that the SVRCONN channel is
running on.
Examples of client traces
1.strmqtrc –t api –p prog1 (from client server)
2.strmqtrc –m qmgr –t api –p amqrmppa (from queue manager server)
16. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Some Final MQ Tracing Notes – cont
Tracing adds performance overhead and can create large files. Be judicious
on the length of time that you run the trace and try and be selective with the
options (i.e. –t api –p prog1) to reduce any unneeded output. Also, keep an
eye on the size of your trace files and your space available on your trace file
system (i.e. /var/mqm). You can also use the strmqtrc –l (MaxSize in MB)
option to limit the size of your trace files, but this means that trace data can
be overwritten and lost. The –l option keeps a current AMQppppp.qq.TRC
and a previous AMQppppp.qq.TRS file.
strmqtrc –m qmgr –t api –p amqsput –l 1
APAR IT01972 – Queue Manager trace is inadvertently turned off for an
application thread with multiple shared connections after an MQDISC is
called. End result is the potential for trace data loss. Targeted delivery of
PTF is 7.1.0.6, 7.5.0.5, 8.0.0.1.
17. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Application Activity Trace (AAT)
The Application Activity Trace (AAT) was first introduced in 7.1. It provides
detailed information of the behavior of applications connected to a queue
manager, including their MQI call details.
“Increasing the visibility of messages using WebSphere MQ Application
Activity Trace” by Emma Bushby is an IBM DeveloperWorks article that does
a good job in explaining the Application Activity Trace in detail.
The AAT is another tool that can be helpful in MQ problem determination or
application review, by giving you visibility to the inputs and outputs of your
application API calls.
18. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – Usage Notes
Applications write AAT records to the
SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE.
There is a hierarchy to turning ON/OFF the AAT:
1. ACTVTRC queue manager attribute (ON/OFF)
(overridden by)
2. MQCNO_ACTIVITY_TRACE connection options specified in an MQCONNX
(NOTE: ACTVCONO queue manager attribute must be ENABLED for this to
be checked, and the default value is DISABLED)
(overridden by)
3. Settings in a matching stanza in mqat.ini (located in qm.ini directory)
In order to pick up a mqat.ini change dynamically in a running program, you
need to toggle the ACTVTRC queue manager attribute (i.e. ON/OFF).
19. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – Viewing the Data
MS0P supportpac (WebSphere MQ Explorer Extended Management Plug-
ins) has an Application Activity Trace viewer.
amqsact is a command line tool (sample code also provided) that can read
the messages from the SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE and
format them into summary and verbose reports.
amqsactz on Capitalware’s Sample WebSphere MQ C Code web site is a
program that takes the amqsact sample code and provides the following
enhancements:
1.Includes more data (i.e. Conn, Channel, etc.) on API one line summaries.
2.Includes –r option for helpful summary reports
3.Corrects a print formatting issue where a byte like x’DF’ was printed as
x’FFFFFFDF’.
20. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsputc example
1) Add an ApplicationTrace stanza for amqsputc to the mqat.ini to turn on AAT
tracing.
ApplicationTrace: # Application specific settings stanza
ApplClass=ALL # Application type
# Values: (USER | MCA | ALL)
# Default: USER
ApplName=amqsputc # Application name (may be wildcarded)
# (matched to app name without path)
# Default: *
Trace=ON # Activity trace switch for application
# Values: ( ON | OFF )
# Default: OFF
ActivityInterval=0 # Time interval between trace messages
# Values: 0-99999999 (0=off)
# Default: 0
ActivityCount=0 # Number of operations between trace msgs
# Values: 0-99999999 (0=off)
# Default: 0
TraceLevel=MEDIUM # Amount of data traced for each operation
# Values: LOW | MEDIUM | HIGH
# Default: MEDIUM
TraceMessageData=0 # Amount of message data traced
# Values: 0-104857600
# Default: 0
21. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsputc example
2) Run the amqsputc sample program.
mqm$ export MQSERVER='CLIENT.TO.SERVER/TCP/SERVER01'
mqm$ amqsputc TCZ.TEST1
Sample AMQSPUT0 start
target queue is TCZ.TEST1
test1
test2
test3
test4
test5
Sample AMQSPUT0 end
3) Update ApplicationTrace stanza for amqsputc in the mqat.ini to turn off AAT
tracing.
NOTE: If instead, amqsputc was to continue to run and you turned the trace off
with the mqat.ini change, you would need to toggle the ACTVTRC queue
manager attribute ON/OFF to have amqsputc pick up the mqat.ini change.
22. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsactz reports
4) Use amqsactz to view AAT data, by generating 3 reports:
1.amqsactz.out – non-verbose report with –r summary information
2.amqsactz_1LS.out – API one line summaries selected from amqsactz.out
3.amqsactv_v.out – verbose report
amqsactz.out – non-verbose report, includes –r summary output at bottom of
report
amqsactz -r -b > amqsactz.out
25. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT - amqsactz.out (-r summary option)
========================================================================================================
Application Summary Report
========================================================================================================
Pid ApplicationName UserId Tid Count MQI Count
24912 amqsputc mqm 1 11
========================================================================================================
Application Objects Referenced Report
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following objects:
ObjName: TCZ.TEST1 Count: 7
========================================================================================================
Application Objects Options Report
Options tracked are conn, open, get, put, close, callback, sub, subrq
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following options by object:
Object Name: TCZ.TEST1
Open Options: 8208 Count: 1
MQOO_OUTPUT
MQOO_FAIL_IF_QUIESCING
Put Options: 8260 Count: 5
MQPMO_NO_SYNCPOINT
MQPMO_NEW_MSG_ID
MQPMO_FAIL_IF_QUIESCING
Close Options: 0 Count: 1
MQCO_NONE
MQCO_IMMEDIATE
26. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT - amqsactz.out (-r summary option)
========================================================================================================
Application Channels Referenced Report
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following channels:
ChannelName: CLIENT.TO.SERVER Count: 11
========================================================================================================
Application Operations Executed Report
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm executed the
following operations:
Operation: MQXF_BACK Count: 1
Operation: MQXF_CLOSE Count: 1
Operation: MQXF_CONNX Count: 1
Operation: MQXF_DISC Count: 2
Operation: MQXF_OPEN Count: 1
Operation: MQXF_PUT Count: 5
27. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT - amqsactz.out (-r summary option)
========================================================================================================
Application Operations Options Report
Options tracked are conn, open, get, put, close, callback, sub, subrq
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following options by operations:
Operation: MQXF_CLOSE
Close Options: 0 Count: 1
MQCO_NONE
MQCO_IMMEDIATE
Operation: MQXF_CONNX
Connect Options: 320 Count: 1
MQCNO_HANDLE_SHARE_BLOCK
MQCNO_SHARED_BINDING
Operation: MQXF_OPEN
Open Options: 8208 Count: 1
MQOO_OUTPUT
MQOO_FAIL_IF_QUIESCING
Operation: MQXF_PUT
Put Options: 8260 Count: 5
MQPMO_NO_SYNCPOINT
MQPMO_NEW_MSG_ID
MQPMO_FAIL_IF_QUIESCING
28. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsactz reports
Remember, each API summary line had a 1LS= eye catcher text in it.
========================================================================================================
EYEC RecordNum Pid Tid Conn Channel Name Date Time Operation MQRC HObj
(ObjName)
1LS= 0 24912 2606 53E3C453010AF420 CLIENT.TO.SERVER 2014-08-28 09:24:29 MQXF_CONNX 0000 -
1LS= 0 24912 2606 53E3C453010AF420 CLIENT.TO.SERVER 2014-08-28 09:24:29 MQXF_OPEN 0000 2
(TCZ.TEST1)
amqsactz_1LS.out - Use the 1LS= to grep out all the API one line summary
records into a report.
grep 1LS= amqsactz.out > amqsactz_1LS.out
30. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsactz reports
amqsactz_v.out – verbose report for each AAT record
amqsactz -v -b > amqsactz_v.out
32. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Linux Internals - /proc file system
The /proc file system is a virtual file system that allows you access to internal
kernel data.
/proc/pid/environ will show you the environment variables for a pid when the
process was created. NOTE: Later changes to the environment after the
process is created are not reflected here. See handout #8.
/proc/pid/limits will show the user limits for a process. Later versions of the
Linux kernel (I believe 2.6.32) allow you to dynamically update the limits for a
running process. For example, you can increase the Max open files setting
for a running queue manager process. See handout #9.
/proc/pid/fd will show the file descriptors for the process. You could see
which files that the process has open, or how many files are open. See
handout #10.
33. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Linux Commands - strace
strace will trace the system calls (i.e. open, write, etc.) that a process is
making. This can be helpful to see internally what a process is doing for
problem determination. You need the proper security to strace a process.
For processes running under the mqm id, you need to be the mqm id.
Possible uses are:
1.strace the start up of the queue manager to see if an exit is being invoked.
2.strace an actively running process that seems to be hung.
3.strace a problematic MQ command.
Helpful pieces to search for in the strace output:
1.file names
2.programs being executed
3.error messages being written
See handout #11.
35. Capitalware's MQ Technical Conference v2.0.1.4
MQ Problem Determination
MQ Problem Determination
with Tracing on Linux
with Tracing on Linux
Tim Zielke
36. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Introduction and Agenda
My Background:
•I have been in IT for 17 years with Hewitt Associates/Aon
•First 13 years mainly on the Mainframe COBOL application side
•Last 4 years as a CICS/MQ systems programmer
•Last 8 years also working with Linux
Session Agenda:
Using the Linux x86 platform, we will cover the following topics that can help
with MQ problem determination:
•MQ API Tracing (also the MH06 Trace Tools supportpac)
•Application Activity Trace
•Helpful Linux x86 internals and commands for MQ problem determination
37. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ API Tracing on Linux - Overview
Overview:
MQ API tracing is a debugging tool that comes with WebSphere MQ. An MQ
API trace of an MQ application will include all of the API calls (i.e. MQOPEN,
MQPUT, etc.) that the application makes, including the input and return data
for each API call. This API data is very helpful in MQ problem determination,
as it allows you to see what input data your application is passing to MQ and
what return data your application is getting back from MQ. The MQ API trace
can be cryptic to read, but we will cover a trace tool (mqtrcfrmt) that can
significantly aid in reading MQ API traces much more quickly and accurately.
We will do this, using Linux x86 as our platform.
38. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ API Tracing – Example with amqsput
Turn on an API trace for the amqsput program
strmqtrc –m qmgr –t api –p amqsput
Run the amqsput program on a TCZ.TEST1 queue, and do two PUTs to the
queue, and then end the program.
NOTE: By default, trace writes out on Linux x86 to a file like:
/var/mqm/trace/AMQ16884.0.TRC (where 16884 = pid)
Turn off the tracing
endmqtrc –a
Format the trace
dspmqtrc AMQ16884.0.TRC > AMQ16884.0.FMT
See handout #1 for contents of AMQ16884.0.FMT
39. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Orientation in Reading an MQ API Trace
Lines 3 – 27 have the trace header information.
Line 33 shows the following trace data will have a microsecond time stamp,
process.thread, and then API trace data.
Lines 48 – 90 are an example of an MQOPEN API call. The trace records
immediately following the “MQOPEN >>” on line 48 are the input data before
entering the MQOPEN API. The trace records immediately following the
“MQOPEN <<“ on line 69 are the output data after exiting the MQOPEN API.
Note that some data (i.e. ObjDesc) is both input and output data. Options is
just input data. Compcode is just output data.
Note for the Objdesc (lines 51 - 62), this MQ API data structure is printed in
the raw hex data format, with each 16 byte line formatted to ASCII directly to
the right.
The rest of the API trace contains the 2 MQPUTs, and MQCLOSE, MQDISC.
40. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Endianness – Little Endian (x86)
Endianness is the byte ordering of a CPU for multi-byte binary data. For
reading MQ traces, it is helpful to understand Little endianness and Big
endianness.
Example: x’01400006’ stored on a Little endian processor (x86)
A Little endian CPU (x86) will store this 4 byte value at the starting memory
address (i.e. address x’0000A010’) from the least significant byte to most
significant byte, or little end first.
address 0000A010 = x’06’
address 0000A011 = x’00’
address 0000A012 = x’40’
address 0000A013 = x’01’
When looking at an MQ trace, this would appear as 06004001. This looks
intuitively “reversed” when reading the trace.
41. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Endianness – Big Endian (i.e. SPARC)
Example: x’01400006’ stored on a Big endian processor (SPARC)
A Big endian CPU (SPARC) will store this 4 byte value at the starting memory
address (i.e. address x’0000A010’) from the most significant byte to least
significant byte, or big end first.
address 0000A010 = x’01’
address 0000A011 = x’40’
address 0000A012 = x’00’
address 0000A013 = x’06’
When looking at an MQ trace, this would appear as 01400006. This looks
intuitively “normal” when reading the trace.
42. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Reading a Data Structure
MQ data structures such as Objdesc, Msgdesc, Putmsgopts, etc. appear in
the trace. The MQ data structures follow a format of a 4 byte character
structure id, a 4 byte binary integer version id, and then subsequent fields.
The layouts of the data structures can be found in the MQ manual.
1 2 3
51 13:15:37.742885 16884.1 Objdesc:
52 13:15:37.742887 16884.1 0x0000: 4f442020 01000000 01000000 54435a2e
53 13:15:37.742887 16884.1 0x0010: 54455354 31000000 00000000 00000000
Field 1 is Structure Id (MQCHAR4) = x’4f442020’ = “OD “
Field 2 is Version (MQLONG) = x’01000000’ = 1
Field 3 is Object Type (MQLONG) = x’01000000’ = 1 (MQOT_Q or Queue Object Type)
Remember to reverse bytes for binary fields, since this trace is little endian (x86):
Version:
01 00 00 00
00 00 00 01 = Version is 1
43. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Reading an Options Field
Reading Open Options on line 64
63 13:15:37.742888 16884.1 Options:
64 13:15:37.742889 16884.1 0x0000: 10200000
Reverse bytes for binary integer fields, since this is little endian:
Options (MQLONG):
10 20 00 00
00 00 20 10 = Options is x’00002010’ = 8208
To convert 8208 to its open options constant values, find the largest open option value that is closest
to or equal to 8208 and subtract that value. Continue this process, until you reach 0.
8192 = MQOO_FAIL_IF_QUIESCING
8208 – 8192 = 16
16 = MQOO_OUTPUT
16 – 16 = 0
Therefore, 8208 = MQOO_FAIL_IF_QUIESCING, MQOO_OUTPUT
44. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – mqtrcfrmt tool in MH06
mqtrcfrmt is a trace tool that comes with the MH06 supportpac. It will help
you read a trace by expanding the MQ data structures by labeling the fields
and include constant expansions. Executables are provided for Linux x86,
Solaris Sparc, and Windows.
Using the mqtrcfrmt tool:
mqtrcfrmt.linux AMQ16884.0.FMT AMQ16884.0.FMT2
See handout #2 for contents of AMQ16884.0.FMT2
User customizable API summary trace from AMQ16884.0.FMT2
egrep '( >>$| <<$|Hconn=|Hobj=|Compcode=|Reason=|Hmsg=|Actual Name=|
Value=|Options=|Type=|ObjectName |ResolvedQName |Persistence )'
AMQ16884.0.FMT2
See handout #3 for results of this API summary trace
47. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Other Uses
1) General performance of API calls
API tracing provides microsecond timings in the trace record. By finding
the API begin (i.e. MQGET >>) and the API end (i.e. reason field of
MQGET <<) you can roughly calculate the time it took for the API MQGET
to complete. Do note that tracing does add overhead to the timings.
48 13:15:37.742881 16884.1 CONN:1400006 MQOPEN >>
69 13:15:37.743138 16884.1 CONN:1400006 MQOPEN <<
88 13:15:37.743157 16884.1 CONN:1400006 Reason:
89 13:15:37.743158 16884.1 CONN:1400006 0x0000: 00000000
13:15:37.743158 - 13:15:37.742881 = 0.000277 seconds to complete for the MQOPEN
mqapitrcstats tool in the MH06 Trace Tools supportpac will read an entire
API trace and create a summary report of the response times of the open,
close, get, put, and put1 API calls. Executables are provided for Linux x86,
Solaris Sparc, and Windows.
48. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
MQ Tracing – Other Uses
2) Investigation of triggering issues
strmqtrc –m qmgr –t all –p runmqtrm
The runmqtrm trace will record if/when the trigger message was read from the
INITQ, if/when it started the application of your process, and the operating
system return code from the start call. Also, this does not require that
runmqtrm be run in the foreground.
49. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Some Final MQ Tracing Notes
Client applications can be traced, as well. You can either run a client trace
on the client server (unfortunately, Java clients do not support this type of
tracing) or trace the queue manager process that the SVRCONN channel is
running on.
Examples of client traces
1.strmqtrc –t api –p prog1 (from client server)
2.strmqtrc –m qmgr –t api –p amqrmppa (from queue manager server)
50. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Some Final MQ Tracing Notes – cont
Tracing adds performance overhead and can create large files. Be judicious
on the length of time that you run the trace and try and be selective with the
options (i.e. –t api –p prog1) to reduce any unneeded output. Also, keep an
eye on the size of your trace files and your space available on your trace file
system (i.e. /var/mqm). You can also use the strmqtrc –l (MaxSize in MB)
option to limit the size of your trace files, but this means that trace data can
be overwritten and lost. The –l option keeps a current AMQppppp.qq.TRC
and a previous AMQppppp.qq.TRS file.
strmqtrc –m qmgr –t api –p amqsput –l 1
APAR IT01972 – Queue Manager trace is inadvertently turned off for an
application thread with multiple shared connections after an MQDISC is
called. End result is the potential for trace data loss. Targeted delivery of
PTF is 7.1.0.6, 7.5.0.5, 8.0.0.1.
51. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Application Activity Trace (AAT)
The Application Activity Trace (AAT) was first introduced in 7.1. It provides
detailed information of the behavior of applications connected to a queue
manager, including their MQI call details.
“Increasing the visibility of messages using WebSphere MQ Application
Activity Trace” by Emma Bushby is an IBM DeveloperWorks article that does
a good job in explaining the Application Activity Trace in detail.
The AAT is another tool that can be helpful in MQ problem determination or
application review, by giving you visibility to the inputs and outputs of your
application API calls.
52. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – Usage Notes
Applications write AAT records to the
SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE.
There is a hierarchy to turning ON/OFF the AAT:
1. ACTVTRC queue manager attribute (ON/OFF)
(overridden by)
2. MQCNO_ACTIVITY_TRACE connection options specified in an MQCONNX
(NOTE: ACTVCONO queue manager attribute must be ENABLED for this to
be checked, and the default value is DISABLED)
(overridden by)
3. Settings in a matching stanza in mqat.ini (located in qm.ini directory)
In order to pick up a mqat.ini change dynamically in a running program, you
need to toggle the ACTVTRC queue manager attribute (i.e. ON/OFF).
53. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – Viewing the Data
MS0P supportpac (WebSphere MQ Explorer Extended Management Plug-
ins) has an Application Activity Trace viewer.
amqsact is a command line tool (sample code also provided) that can read
the messages from the SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE and
format them into summary and verbose reports.
amqsactz on Capitalware’s Sample WebSphere MQ C Code web site is a
program that takes the amqsact sample code and provides the following
enhancements:
1.Includes more data (i.e. Conn, Channel, etc.) on API one line summaries.
2.Includes –r option for helpful summary reports
3.Corrects a print formatting issue where a byte like x’DF’ was printed as
x’FFFFFFDF’.
54. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsputc example
1) Add an ApplicationTrace stanza for amqsputc to the mqat.ini to turn on AAT
tracing.
ApplicationTrace: # Application specific settings stanza
ApplClass=ALL # Application type
# Values: (USER | MCA | ALL)
# Default: USER
ApplName=amqsputc # Application name (may be wildcarded)
# (matched to app name without path)
# Default: *
Trace=ON # Activity trace switch for application
# Values: ( ON | OFF )
# Default: OFF
ActivityInterval=0 # Time interval between trace messages
# Values: 0-99999999 (0=off)
# Default: 0
ActivityCount=0 # Number of operations between trace msgs
# Values: 0-99999999 (0=off)
# Default: 0
TraceLevel=MEDIUM # Amount of data traced for each operation
# Values: LOW | MEDIUM | HIGH
# Default: MEDIUM
TraceMessageData=0 # Amount of message data traced
# Values: 0-104857600
# Default: 0
55. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsputc example
2) Run the amqsputc sample program.
mqm$ export MQSERVER='CLIENT.TO.SERVER/TCP/SERVER01'
mqm$ amqsputc TCZ.TEST1
Sample AMQSPUT0 start
target queue is TCZ.TEST1
test1
test2
test3
test4
test5
Sample AMQSPUT0 end
3) Update ApplicationTrace stanza for amqsputc in the mqat.ini to turn off AAT
tracing.
NOTE: If instead, amqsputc was to continue to run and you turned the trace off
with the mqat.ini change, you would need to toggle the ACTVTRC queue
manager attribute ON/OFF to have amqsputc pick up the mqat.ini change.
56. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsactz reports
4) Use amqsactz to view AAT data, by generating 3 reports:
1.amqsactz.out – non-verbose report with –r summary information
2.amqsactz_1LS.out – API one line summaries selected from amqsactz.out
3.amqsactv_v.out – verbose report
amqsactz.out – non-verbose report, includes –r summary output at bottom of
report
amqsactz -r -b > amqsactz.out
59. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT - amqsactz.out (-r summary option)
========================================================================================================
Application Summary Report
========================================================================================================
Pid ApplicationName UserId Tid Count MQI Count
24912 amqsputc mqm 1 11
========================================================================================================
Application Objects Referenced Report
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following objects:
ObjName: TCZ.TEST1 Count: 7
========================================================================================================
Application Objects Options Report
Options tracked are conn, open, get, put, close, callback, sub, subrq
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following options by object:
Object Name: TCZ.TEST1
Open Options: 8208 Count: 1
MQOO_OUTPUT
MQOO_FAIL_IF_QUIESCING
Put Options: 8260 Count: 5
MQPMO_NO_SYNCPOINT
MQPMO_NEW_MSG_ID
MQPMO_FAIL_IF_QUIESCING
Close Options: 0 Count: 1
MQCO_NONE
MQCO_IMMEDIATE
60. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT - amqsactz.out (-r summary option)
========================================================================================================
Application Channels Referenced Report
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following channels:
ChannelName: CLIENT.TO.SERVER Count: 11
========================================================================================================
Application Operations Executed Report
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm executed the
following operations:
Operation: MQXF_BACK Count: 1
Operation: MQXF_CLOSE Count: 1
Operation: MQXF_CONNX Count: 1
Operation: MQXF_DISC Count: 2
Operation: MQXF_OPEN Count: 1
Operation: MQXF_PUT Count: 5
61. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT - amqsactz.out (-r summary option)
========================================================================================================
Application Operations Options Report
Options tracked are conn, open, get, put, close, callback, sub, subrq
========================================================================================================
pid: 24912 ApplicationName: amqsputc UserId: mqm referenced the following options by operations:
Operation: MQXF_CLOSE
Close Options: 0 Count: 1
MQCO_NONE
MQCO_IMMEDIATE
Operation: MQXF_CONNX
Connect Options: 320 Count: 1
MQCNO_HANDLE_SHARE_BLOCK
MQCNO_SHARED_BINDING
Operation: MQXF_OPEN
Open Options: 8208 Count: 1
MQOO_OUTPUT
MQOO_FAIL_IF_QUIESCING
Operation: MQXF_PUT
Put Options: 8260 Count: 5
MQPMO_NO_SYNCPOINT
MQPMO_NEW_MSG_ID
MQPMO_FAIL_IF_QUIESCING
62. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsactz reports
Remember, each API summary line had a 1LS= eye catcher text in it.
========================================================================================================
EYEC RecordNum Pid Tid Conn Channel Name Date Time Operation MQRC HObj
(ObjName)
1LS= 0 24912 2606 53E3C453010AF420 CLIENT.TO.SERVER 2014-08-28 09:24:29 MQXF_CONNX 0000 -
1LS= 0 24912 2606 53E3C453010AF420 CLIENT.TO.SERVER 2014-08-28 09:24:29 MQXF_OPEN 0000 2
(TCZ.TEST1)
amqsactz_1LS.out - Use the 1LS= to grep out all the API one line summary
records into a report.
grep 1LS= amqsactz.out > amqsactz_1LS.out
64. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
AAT – amqsactz reports
amqsactz_v.out – verbose report for each AAT record
amqsactz -v -b > amqsactz_v.out
66. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Linux Internals - /proc file system
The /proc file system is a virtual file system that allows you access to internal
kernel data.
/proc/pid/environ will show you the environment variables for a pid when the
process was created. NOTE: Later changes to the environment after the
process is created are not reflected here. See handout #8.
/proc/pid/limits will show the user limits for a process. Later versions of the
Linux kernel (I believe 2.6.32) allow you to dynamically update the limits for a
running process. For example, you can increase the Max open files setting
for a running queue manager process. See handout #9.
/proc/pid/fd will show the file descriptors for the process. You could see
which files that the process has open, or how many files are open. See
handout #10.
67. Capitalware's MQ Technical Conference v2.0.1.4
N
O
T
E
S
Linux Commands - strace
strace will trace the system calls (i.e. open, write, etc.) that a process is
making. This can be helpful to see internally what a process is doing for
problem determination. You need the proper security to strace a process.
For processes running under the mqm id, you need to be the mqm id.
Possible uses are:
1.strace the start up of the queue manager to see if an exit is being invoked.
2.strace an actively running process that seems to be hung.
3.strace a problematic MQ command.
Helpful pieces to search for in the strace output:
1.file names
2.programs being executed
3.error messages being written
See handout #11.