Application Development with AMPS Clients
Unique Client Naming and AMPS
Understand unique client naming conventions in AMPS APIs, especially concerning transaction logging, durable messaging, and application instance identification.
Which version of the client do I need for a specific version of AMPS?
Learn how AMPS client and server versions coordinate feature support and compatibility for proper integration.
How does an application pass credentials to AMPS?
Learn how AMPS applications pass credentials using connection strings for simple authentication or the flexible Authenticator interface for complex schemes.
What are the entries in a bookmark store file?
Learn about the three entry types (bookmark, discard, persisted) in the AMPS client fully-logged bookmark store file.
Is there a way to store client state in AMPS?
Learn how to efficiently store persistent client state and manage bookmark subscriptions using the AMPS SOW feature.
Should I Use TCP_NODELAY for connections to AMPS?
Learn when to use TCP_NODELAY with AMPS to balance low latency against bandwidth efficiency by disabling Nagle's algorithm.
Should I use Command or Message to send commands to AMPS?
Use the `Command` interface over `Message`/`send` for AMPS interactions to leverage client infrastructure and error checking.
How do I set the CorrelationId when I publish a message?
Learn how to set the CorrelationId when publishing messages asynchronously using the AMPS Command interface in Java.
Can I send commands to AMPS from inside a message handler?
Learn why you must use a separate AMPS client instance to send commands from within a message handler.
How do I use a custom Authenticator with HAClient?
Learn how to implement a custom Authenticator by overriding getCurrentAuthenticator in HAClient's ServerChooser.
What's the difference between CommandId, QueryId, and SubId?
Clarifies the distinct roles of CommandId, QueryId, and SubId headers within the AMPS messaging system.
Do I need to use an HAClient?
Understand when to use the HAClient in AMPS client libraries for automatic reconnection, failover, and durable messaging.
What character set is supported for CorrelationID?
Correlation ID must only contain base64 characters to prevent message header parse errors.
Can I add a correlation token to the header of a message?
Learn how the CorrelationId header works in AMPS version 4.0 and its usage in various message types.
How do I change the filter on a subscription?
Learn how to atomically replace an existing AMPS subscription filter using the subscription ID and new criteria.
Can a client have more than one subscription at a time?
Learn if an AMPS client can maintain multiple active subscriptions simultaneously and how overlapping messages are handled.
Can a subscriber tell who published a message?
Discover how AMPS allows subscribers to identify the publisher of a message using user ID headers.
Why do messages sometimes have strange data when I'm using asynchronous processing?
Prevent strange message data in asynchronous processing by deep copying reused message objects.
What character encoding is being used by the AMPS clients?
AMPS clients enforce UTF-8 for headers but allow flexible encoding for message data across different protocols.
Why does my HAClient appear to hang when my server is down or URI is incorrect?
Resolve HAClient hanging issues when the server is down by configuring timeouts or implementing a custom ServerChooser.
How can I reconnect to my AMPS server when a disconnect occurs?
Learn how the HAClient class simplifies automatic reconnection and failover to an AMPS server after a disconnect.
How can I use AMPS with a XAML application?
Learn how to integrate AMPS functionality into your XAML applications with step-by-step instructions and sample code.
Can I enforce unique client naming without creating a transaction log file?
Enforce unique AMPS client naming without creating a transaction log file by enabling logging without topic capture.
How can I tell if my program is not entitled to publish to a topic?
Learn how to identify and handle publication entitlement failures in AMPS applications using the `FailedWriteHandler`.
When using the Python client, will the background thread exit when the program exits?
The AMPS Python client's background reader thread exits gracefully upon program termination without manual intervention.
Do I need more than one AMPS client object in my program?
Learn when you need multiple AMPS Client objects, focusing on connections to different instances or credential sets.
Why does AMPS disconnect a client with a 'name in use' error?
Learn why AMPS disconnects existing connections when a new client connects using the same client name to ensure quick application recovery.
In bookmark subscribes, why does EPOCH give me the same messages as MOST_RECENT?
Understand why AMPS EPOCH subscriptions might appear to deliver the same messages as MOST_RECENT due to built-in duplicate detection.