Skip to main content

Overview

Centralized Management

Connection provides reliable access to ActiveMQ brokers, centralizing message sending and receiving operations.

Reusability

Eliminates configuration repetition by providing reusable connection parameters across different Integration Flow steps.

Environment-Based Management

Provides consistent deployment processes between Development, Test, and Production through environment-based management.

Performance and Durability

Provides performance and durability in high-traffic scenarios thanks to advanced timeout and pool management.

Connection Initiation

When a Message Queue connection is requested from within an Integration Flow or Connector, the system reads the configured connection parameters.

Connection Pool Management

Previously opened connections are reused with active connection pool strategy; if pool is full, a new connection is created.

Authentication

Authentication to broker is performed with basic Authentication mechanism (username/password) or optional SSL/TLS certificate verification.

Data Communication

JMS messages are transmitted or consumed synchronously/asynchronously to Queue or Topic targets over AMQP/TCP protocol.

Connection Management

When the operation completes, the connection returns to the pool; passive connections are closed according to pool policies.

Error Management

In case of connection error, timeout, or authentication error, error details are logged, system automatically retries and produces a warning message to the user.

Asynchronous Message Queue

Application components executing asynchronous message queue operations via ActiveMQ.

Reliable Message Broadcast

Reliable message broadcast and consumption in Queue or Topic-based integrations.

High Volume Message Scenarios

High volume message scenarios in business intelligence, notification, or integration services.

Inter-Microservice Communication

AMQP-based event sharing in inter-microservice communication.

Legacy JMS Integration

Including legacy JMS applications in modern Integration Flow steps.

Technical Features and Capabilities

Basic Features

Protocol Flexibility: Provides connections suitable for different ActiveMQ distributions with AMQP or TCP protocol selection. Destination Management: Manages Queue or Topic destinations from a single screen, storing them together with necessary credentials. Session Acknowledgement Policy: Fast integration with AUTO_ACKNOWLEDGE default; provides advanced control with CLIENT_ACKNOWLEDGE or TRANSACTED. Environment-Based Configuration: Ability to define separate connection parameters for each environment (Development, Test, Production). Enable/Disable Control: Activating or deactivating the Connection (enable/disable toggle). In passive state, the connection cannot be used but its configuration is preserved.

Advanced Features

Timeout Management: Connection, request response, and message sending durations can be precisely adjusted in milliseconds. Content Customization: Message metadata is standardized with Content-Type and Content-Encoding fields. Client ID Definition: Persistent subscription or durable consumer scenarios become possible thanks to JMS ClientID support. Connection Test Feature: Ability to validate connection parameters before saving via “Test Connection” button. Export/Import Feature: Exporting Connection configuration as a ZIP file. Importing to different environments (Development, Test, Production). Version control and backup capability. Connection Monitoring: Monitoring connection health, pool status, and performance metrics.

Connection Parameters

Name

Description: Connection name (must be unique)
Example Value: Production_ActiveMQ
Notes: Should not start with space, special characters should not be used

Broker URL

Description: ActiveMQ broker access address
Example Value: tcp://mq.prod.local:61616
Notes: Includes protocol (amqp/tcp) and port value

Username

Description: ActiveMQ access username
Example Value: mq_service_user
Notes: Authorized account should be used

Password

Description: Password belonging to the user
Example Value: ********
Notes: Secret manager should be used for password storage

Destination Type

Description: Queue or Topic selection
Example Value: QUEUE
Notes: Enum values: QUEUE, TOPIC

Destination Name

Description: Message queue or topic name
Example Value: order.events.queue
Notes: Should comply with namespace rules

ActiveMQ Connection Protocol Type

Description: Connection protocol to be used
Example Value: AMQP
Notes: Enum values: AMQP, TCP

Session Acknowledgement

Description: JMS session acknowledgement type
Example Value: AUTO_ACKNOWLEDGE
Notes: Enum values: AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, SESSION_TRANSACTED, DUPS_OK_ACKNOWLEDGE

Environment Id

Description: Environment selection reference
Example Value: env-prod-01
Notes: Environment list comes from Environment service

Send Timeout

Description: Wait time for message sending
Default Value: 60000
Recommended Value: 30000 - 120000 range according to need

Request Timeout

Description: Response wait time
Default Value: 60000
Recommended Value: 45000 for critical operations

Close Timeout

Description: Connection closing time
Default Value: 60000
Recommended Value: 90000 for long sessions

Connect Timeout

Description: Time to connect to broker
Default Value: 60000
Recommended Value: 90000 ms in high latency networks

Content Type

Description: Message content type
Default Value: application/json
Recommended Value: application/xml according to workload

Content Encoding

Description: Message character set
Default Value: UTF-8
Recommended Value: Standard UTF-8 usage is recommended

Client ID

Description: Persistent subscription identity
Default Value: durable-consumer-1
Recommended Value: Mandatory in durable topic subscriptions

Timeout and Connection Pool Parameters

Connection Timeout

Description: Maximum wait time for connection establishment
Default: 60000
Min: 1000 | Max: 180000
Unit: milliseconds

Request Timeout

Description: Maximum wait time for request response
Default: 60000
Min: 1000 | Max: 180000
Unit: milliseconds

Pool Size

Description: Maximum number of connections in Connection pool
Default: 10
Min: 1 | Max: 200
Unit: count

Send Timeout

Description: Expected longest duration for message sending
Default: 60000
Min: 5000 | Max: 180000
Unit: milliseconds

Usage Scenarios

Order Queue Consumption

Situation: New order messages are falling into ActiveMQ queue
Solution: Destination Type=QUEUE, Destination Name=order.events.queue, Protocol=AMQP
Expected Behavior: Integration Flow consumes order messages sequentially

Live Notification Broadcast

Situation: Websocket notifications will be distributed via topic
Solution: Destination Type=TOPIC, Destination Name=notifications.topic, ClientID=notif-producer
Expected Behavior: All subscribers receive real-time notifications

High Security Broker

Situation: Production broker only accepts SSL
Solution: Protocol=TCP, Broker URL=ssl://mq.prod.local:61617, SSL certificate attachments
Expected Behavior: Encrypted connection is successfully established

Long Duration Operation

Situation: Batch job is sending large message packages
Solution: Send Timeout=120000, Request Timeout=120000, Pool Size=30
Expected Behavior: Message sending completes without interruption

Test Environment Simulation

Situation: Test broker is low-resource
Solution: Pool Size=5, Request Timeout=45000, Content Type=application/json
Expected Behavior: Resource usage is optimized, test runs stably

Disaster Recovery

Situation: Need to switch to backup broker
Solution: Broker URL is updated to secondary address, activated with Enable toggle
Expected Behavior: Traffic seamlessly shifts to backup broker

Connection Configuration

Creating New Apache ActiveMQ

Image 2024 9 9 15 35 35 Pn

Configuration Steps

1

Navigating to Creation Page

  • Go to Connection → Apache ActiveMQ section from the left menu.
  • Click the [+ Create] button at the top right.
2

Entering Basic Information

Enable Status (Active Status):Set active/passive status with toggle. New connections are active by default.Name (Mandatory):Example: Production_ActiveMQ
  • Enter unique name, should not start with space.
  • System automatically checks. Green checkmark: available. Red X: existing name.
Description:Example: “Order queue integration”
  • Max. 1000 characters.
  • Describe the purpose of the connection.
3

Environment Selection

  • Select environment from dropdown menu: Development, Test, or Production.
  • Different connection parameters can be defined for each environment.
4

ActiveMQ Basic Parameters

  • Enter Broker URL, ActiveMQ Connection Protocol Type, Destination Type, Destination Name fields.
  • Broker URL should comply with AMQP/TCP schema; destination type should be selected as Queue or Topic.
5

Messaging Session and Content Settings

  • Determine Session Acknowledgement type according to your JMS strategy. Optionally fill Content Type, Content Encoding, Client ID fields.
  • Client ID is required in durable topic subscriptions.
6

Timeout and Connection Pool Settings

  • Enter Send Timeout, Request Timeout, Connect Timeout, Close Timeout values in milliseconds.
  • Optimize pool sizes and durations for heavy traffic.
7

Security and Authentication Settings

  • Fill Username and Password fields. If SSL/TLS requirements exist, configure broker URL with ssl:// and add necessary certificates to Environment repository.
8

Test Connection

  • Click the [Test Connection] button.
  • Test whether connection parameters are correct.
  • Successful: Green confirmation message, Failed: Error details are shown.
9

Saving

  • Click the [Save and Deploy] button at the top right.
Checklist:
  • Unique name
  • Mandatory fields filled
  • Test connection successful (recommended)
Result:
  • Connection is added to list.
  • Becomes available for use in Integration Flow and Connector steps.
  • Becomes active according to environment.

Deleting Connection

Deletion Process

  • Select Delete from the menu at the end of the row.
  • Or click the [Delete] button on the connection detail page.

Deletion Tips

Check Before Deleting:
  • May be used in Integration Flow or Connector steps.
  • Assign an alternative connection if necessary.
  • Take backup with Export before deleting.
Alternative: Deactivate
  • Use Disable option instead of deleting.
  • Connection becomes passive but is not deleted.
  • Can be reactivated when needed.

Exporting/Importing Connection

In this step, users can export (export) existing connections for backup, moving to different environments, or sharing purposes, or import (import) a previously exported connection again. This operation is used to maintain data integrity in version control, transition between test and production environments, or inter-team sharing processes.

Method 1

Select ⋮ → Export from the action menu. ZIP file is automatically downloaded.

Method 2

Click the [Export] button on the connection detail page. ZIP file is downloaded.

File Format

Format: {Date}-connection-{ConnectionName}-export.zip
Example: 13 Nov 2025-connection-Production_ActiveMQ-export.zip

ZIP Contents

  • Connection JSON file
  • Metadata information
  • Dependency information (e.g., certificates, key store)

Usage Areas

  • Backup
  • Moving between environments (Test → Prod)
  • Versioning
  • Team or project-based sharing

Import Steps

  • Click the [Import Apache ActiveMQ] button on the main list.
  • Select the downloaded ZIP file.
  • System checks: Is format valid? Is there a name conflict? Are dependencies available?
  • Then click the [Import] button.

Import Scenarios

Scenario 1: Name Conflict → Overwrite the old connection or create with a new name.Scenario 2: Missing Dependencies → Create missing certificates or key stores first or exclude them during import.

Connection Usage Areas

Creating and Activating Connection

Steps:
  1. Create the connection.
  2. Verify the connection with Test Connection.
  3. Save and activate with Save and Deploy.
  4. Make sure the connection is in Enabled status.

Usage in Integration / Connector Steps

  • Connection is selected in steps that require communication with external systems such as message queue (queue), topic, email, FTP/SFTP, LDAP, or similar.
  • Example: Steps like “Send Message”, “Consume Message”, “Upload File”, “Read Directory”.
  • Connection selection is made from the Connection field in the configuration of these steps.

Scheduled Job Usage

  • In scheduled tasks (e.g., sending messages at certain intervals, file processing, etc.), access to external systems is provided by selecting connection.
  • When connection changes, job execution behavior is updated accordingly.

Test Purpose Usage

  • Connection correctness can be checked independently from Integration Flow with Connection Test feature.
  • This test is critical in the debugging process.

Best Practices

Things to Do and Best Practices

CategoryDescription / Recommendations
Destination ManagementBad: Routing all workloads to a single queue.

Good: Defining separate Queue/Topic for different business types.

Best: Using own destination for each business type and documenting naming standards.
Protocol SelectionBad: Using default TCP and ignoring security requirements.

Good: Preferring TCP in internal network, AMQP in external network.

Best: Providing encrypted communication using SSL/TLS supported AMQP
Session Acknowledgement PolicyBad: Using AUTO_ACKNOWLEDGE in all flows.

Good: Switching to CLIENT_ACKNOWLEDGE in critical operations.

Best: Using SESSION_TRANSACTED in transactional flows and applying rollback on failure.
Credential ManagementBad: Storing username/password as plain text.

Good: Masking in configuration file.

Best: Retrieving dynamically via Secret Manager or environment variable.
ObservabilityBad: Not tracking connection logs.

Good: Monitoring basic error logs.

Best: Sending pool, timeout, and broker metrics to centralized monitoring system.
Environment ManagementBad: Using the same connection parameters in all environments.

Good: Creating separate connections for each environment.

Best: Managing all environments in a single connection using Environment option, only changing environment during inter-environment transitions.
Connection TestBad: Saving and deploying connection without testing.

Good: Verifying with Test Connection before saving.

Best: Testing after every parameter change, performing full integration test in test environment before moving to production.

Security Best Practices

Security AreaDescription / Warnings
Broker Access AuthorizationAllow only service accounts that need it. Apply role-based policies and remove unnecessary users.
Password ManagementPeriodically renew passwords, use minimum 16 characters, activate audit logs to prevent unauthorized sharing.
Durable Subscriber ProtectionKeep Client IDs unique, do not use the same identity in multiple applications; otherwise message loss may occur.
Credential ManagementStore sensitive information such as username and password using environment variable or secret manager. Do not hardcode credentials in code or configuration files. Periodically update passwords.
SSL/TLS UsageAlways enable SSL/TLS in Production environment. Use self-signed certificates only in development environment. Track certificate expiration dates and renew on time.
Access ControlAllow only authorized users to change Connection configuration. Store connection change logs. Apply change approval process for critical connections.

Things to Avoid

CategoryDescription / Warnings
Wrong Destination NameWhy to avoid: Broker target cannot be found, messages are lost.

Alternative: Validate destination names in deployment pipeline.
Excessive Pool SizeWhy to avoid: Resource consumption increases on broker side.

Alternative: Determine measured pool sizes according to traffic.
Non-Standard EncodingWhy to avoid: Consumers may not be able to decode the message.

Alternative: Maintain UTF-8 standard, coordinate if different encoding is needed.
Using Production Connection in Test EnvironmentWhy to avoid: Test data can be written to production system, real users can be affected, security risk occurs.

Alternative: Create separate connections for each environment, use environment parameter, separate connection names by adding prefix according to environment (Test_, Prod_).
Very Low Timeout ValuesWhy to avoid: Connection constantly times out in network delays, requests fail.

Alternative: Adjust timeout values according to real usage scenarios, measure network latency and determine timeouts accordingly.
Not Using Connection PoolWhy to avoid: New connection is opened for every request, performance decreases, resource consumption increases, target system load increases.

Alternative: Activate connection pool, adjust pool size according to traffic volume, set up pool monitoring.

Performance Tips

CriterionRecommendation / Impact
Broker Cluster IntegrationRecommendation: Use failover URI structure (failover:(tcp://node1:61616,tcp://node2:61616)).

Impact: Automatic reconnection is provided in broker interruptions.
Message ThroughputRecommendation: Increase Send Timeout and Pool Size values in high volume sends.

Impact: Message queues are consumed without accumulation.
Ack StrategyRecommendation: Provide manual control with CLIENT_ACKNOWLEDGE in critical flows.

Impact: Reduces message loss risk.
Connection Pool OptimizationRecommendation: Adjust pool size according to peak traffic (recommended: concurrent request count × 1.5), set idle connection timeouts, perform pool health check.

Impact: Connection opening cost decreases by 80%, response times decrease, resource usage is optimized.
Timeout Values OptimizationRecommendation: Measure real network latency, adjust timeout values accordingly, avoid very low or very high timeouts.

Impact: Unnecessary waits are prevented, fast fail-over is provided, user experience improves.
Connection MonitoringRecommendation: Monitor connection pool usage, track timeout rates, perform connection health check, set up alerting.

Impact: Problems are detected proactively, performance bottlenecks are identified early, downtime decreases.

Troubleshooting

ProblemPossible CausesSolution Steps
Cannot Connect to Broker- Wrong Broker URL
- Firewall barrier
- Broker service is down
1. Verify Broker URL and port
2. Test network access (telnet, nc)
3. Check broker logs
Destination Not Found- Queue/topic not created
- Wrong name entered
- Authorization missing
1. Verify destination from broker management console
2. Update connection parameter
3. Check user permissions
Connection Timeout- Network delay
- Target system responding slowly
- Timeout value too low
1. Check network connectivity
2. Check target system health
3. Increase timeout values
4. Review connection logs
Authentication Failed- Wrong username/password
- Expired credentials
- Authorization problem
1. Verify credentials
2. Check that user is active in target system
3. Check that necessary permissions are granted
4. Check SSL/TLS certificates
Pool Exhausted- Pool size too low
- Connection leak exists
- Traffic too high
1. Increase pool size
2. Check that connections are properly closed
3. Set idle connection timeouts
4. Monitor connection usage metrics
Connection Test Successful But Integration Flow Gives Error- Different connection may be selected in Integration/Connector step
- Step may be misconfigured
- Flow/Job may not be redeployed
1. Check that Connection’s enable toggle is active
2. Verify that correct connection is selected in Integration Flow
3. Redeploy Connection
4. Redeploy Integration Flow or Job
5. Check Gateway logs

Frequently Asked Questions (FAQ)

CategoryQuestionAnswer
GeneralCan I manage multiple destinations within the same broker with a single connection?Yes, the same Apache ActiveMQ connection can be used with different destinations in different Integration Flow steps; target destination configuration must be done separately in each step.
GeneralDoes message consumption completely stop when connection is disabled?When disabled, the connection is not reused, integration steps return error or force connection selection.
TechnicalWhat settings should I change to switch from AMQP to TCP?Set ActiveMQ Connection Protocol Type value to TCP, update Broker URL to tcp:// or ssl:// schema, check firewall ports.
TechnicalHow is durable topic subscription activated?Set Destination Type=TOPIC, enter ClientID field uniquely and enable durable subscriber option on Integration Flow side.
UsageIs automatic retry performed on connection if queue is full?If broker side returns error, ActiveMQ client retries; still you need to track application logs and do capacity planning.
GeneralCan I use the same connection in multiple Integration Flows?Yes, the same connection can be used in multiple Integration Flow or Connector steps. This provides centralized management and guarantees configuration consistency. However, changes made to the connection will affect all usage locations, so care should be taken.
TechnicalIs using connection pool mandatory?Using connection pool is not mandatory but strongly recommended in high-traffic systems. Reusing existing connections instead of opening new connections for every request significantly improves performance.
UsageShould I create different connections for Test and Production?Yes, it is recommended to create separate connections for each environment. Alternatively, you can manage all environments within a single connection using the environment parameter. This approach provides easier management and less error risk.
TechnicalTest Connection is successful but not working in Integration Flow, why?Several reasons may exist: 1) Connection enable toggle may be passive, 2) A different connection may be selected in Integration step, 3) Connection may not be deployed, 4) Integration Flow may not have been redeployed yet.

Examples for BROKER URL

AMQP URL Examples

ScenarioURL ExampleDescription
Simple Connectionamqp://localhost:5672Most basic AMQP connection
Authenticatedamqp://user:password@localhost:5672Connection with username and password
SSL/TLSamqps://secure-broker.example.com:5671Secure AMQP connection
Multiple Brokersamqp://broker1:5672,amqp://broker2:5672Connection to multiple brokers
With Timeout Settingsamqp://localhost:5672?transport.connectTimeout=30000&transport.requestTimeout=30000Timeout values specified
SSL and Failoveramqps://broker:5671?transport.trustStoreLocation=/path/truststore.jks&failover.maxReconnectAttempts=5SSL and reconnection settings
With Prefetch Settingsamqp://broker:5672?jms.prefetchPolicy.all=1000Message prefetch settings
Multi-Featuredamqp://broker:5672?jms.prefetchPolicy.all=1000&amqp.idleTimeout=30000&transport.connectTimeout=30000

TCP URL Examples

ScenarioURL ExampleDescription
Simple Connectiontcp://localhost:61616Most basic TCP connection
Authenticatedtcp://user:password@localhost:61616Connection with username and password
With Timeout Settingstcp://localhost:61616?soTimeout=30000&soWriteTimeout=30000Timeout values specified
Simple Failoverfailover:(tcp://broker1:61616,tcp://broker2:61616)Basic failover configuration
With SSLssl://secure-broker:61617?needClientAuth=true&keyStore=/path/keystore.jksSSL certificate connection
Performance Optimizedtcp://localhost:61616?tcpNoDelay=true&socketBufferSize=65536Optimized for performance
High Availabilityfailover:(tcp://primary:61616,tcp://backup:61616)?maxReconnectAttempts=-1Configured for high availability
Full Failoverfailover:(tcp://broker1:61616,tcp://broker2:61616)?initialReconnectDelay=1000&maxReconnectDelay=30000&maxReconnectAttempts=5Detailed failover settings
Production Environmentfailover:(tcp://prod1:61616,tcp://prod2:61616)?randomize=true&priorityBackup=true&useExponentialBackOff=trueOptimized for production environment

Important Parameters and Values

Parameter TypeParameterExample ValueDescription
TimeoutsoTimeout30000Socket read timeout (ms)
TimeoutsoWriteTimeout30000Socket write timeout (ms)
FailovermaxReconnectAttempts5Maximum reconnection attempts
FailoverinitialReconnectDelay1000Initial connection delay (ms)
PerformancetcpNoDelaytrueTCP Nagle algorithm disabled
PerformancesocketBufferSize65536Socket buffer size (bytes)
Prefetchjms.prefetchPolicy.queuePrefetch1000Prefetch count for Queue
Prefetchjms.prefetchPolicy.topicPrefetch1000Prefetch count for Topic
SSLneedClientAuthtrueClient certificate required
SSLverifyHosttrueHost verification active

Common Usage Scenarios

ScenarioProtocolRecommended URL
DevelopmentAMQPamqp://localhost:5672
DevelopmentTCPtcp://localhost:61616
TestAMQPfailover:(amqp://test1:5672,amqp://test2:5672)?failover.maxReconnectAttempts=3
TestTCPfailover:(tcp://test1:61616,tcp://test2:61616)?maxReconnectAttempts=3
ProductionAMQPamqps://prod:5671?transport.trustStoreLocation=/certs/truststore.jks&failover.maxReconnectAttempts=-1
ProductionTCPfailover:(tcp://prod1:61616,tcp://prod2:61616)?randomize=true&maxReconnectAttempts=-1
High SecurityAMQPamqps://secure:5671?transport.verifyHost=true&transport.trustStoreLocation=/certs/truststore.jks
High SecurityTCPssl://secure:61617?needClientAuth=true&keyStore=/certs/keystore.jks
High PerformanceAMQPamqp://fast:5672?jms.prefetchPolicy.all=2000&amqp.maxFrameSize=1048576
High PerformanceTCPtcp://fast:61616?tcpNoDelay=true&socketBufferSize=131072&wireFormat.maxFrameSize=104857600