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.