# SAFDestinationBean

Overview | Related MBeans | Attributes | Operations

## Overview

Store-and-Forward (SAF) destinations are used for asynchronous and disconnected peer communications. A message delivered to a SAF queue or a SAF topic will be forwarded to a queue or a topic in a remote cluster or server. Aspects of a SAF queues and topics behavior can be configured with a SAF queue or topic bean.

Fully Qualified Interface Name | If you use the `getMBeanInfo` operation in MBeanTypeServiceMBean, supply the following value as this MBean's fully qualified interface name: `weblogic.j2ee.descriptor.wl.SAFDestinationBean`
Factory Methods | No factory methods. Instances of this MBean are created automatically.
Access Points | You can access this MBean from the following MBean attributes:
SAFErrorHandlingBean.SAFErrorDestination |
Subtypes | The following MBeans extend or implement this MBean type:
SAFQueueBean SAFTopicBean |

## Related MBeans

This section describes attributes that provide access to other MBeans. For more information about the MBean hierarchy, refer to WebLogic Server MBean Data Model.

MessageLoggingParams SAFErrorHandling |

### MessageLoggingParams

These parameters control how the SAF destination performs message logging.

They allow the adminstrator to configure the SAF destination to change message logging when message life cycle changes are detected.

Factory Methods | No explicit creator method. The child shares the lifecycle of its parent.
Privileges | Read only
Type | MessageLoggingParamsBean
Relationship type: | Containment.

### SAFErrorHandling

Specifies the error handling configuration used by this SAF destination.

Any change to this parameter affects only incoming messages; stored messages are not affected.

Privileges | Read/Write
Type | SAFErrorHandlingBean
Relationship type: | Reference.
Redeploy or Restart required | Changes take effect after you redeploy the module or restart the server.

## Attributes

This section describes the following attributes:

LocalJNDIName Name NonPersistentQos Notes RemoteJNDIName | TimeToLiveDefault UnitOfOrderRouting UseSAFTimeToLiveDefault

### LocalJNDIName

The local JNDI name of the remote destination.

Privileges | Read/Write
Type | java.lang.String

### Name

The name of this entity, represented in XML as a attribute

Many of the elements within the JMS module are named entities. All of the named entities encased by a type in the XML file must be unique. This is the identifier used to delineate a particular entity within the JMS module.

This attribute cannot be modified externally from the module (for example with a deployment plan) because it may be used inside the module referentially.

Privileges | Read/Write
Type | java.lang.String

### NonPersistentQos

Specifies the quality-of-service for non-persistent messages.

- `Exactly-Once` indicates that messages will be forwarded to the remote side once and only once except for any occurrence of server crashes.

- `At-Least-Once` indicates that messages will be forwarded to the remote side at least once. No message will be lost except for any occurrence of server crashes. However, messages may appear in the remote endpoint more than once.

- `At-Most-Once` indicates that messages will be forwarded to the remote side atmost once. No message will appear in the remote endpoint more than once. However, messages may get lost.

Any change to this parameter affects only incoming messages; stored messages are not affected.

Privileges | Read/Write
Type | java.lang.String
Default Value | At-Most-Once
Legal Values | At-Most-Once At-Least-Once Exactly-Once

### Notes

Optional information that you can include to describe this named JMS descriptor bean.

JMS module saves this note in the JMS descriptor file as XML PCDATA. All left angle brackets (<) are converted to the XML entity `&lt;`. Carriage returns/line feeds are preserved.

Note:

  If you create or edit a note from the Administration Console, the Administration Console does not preserve carriage returns/line feeds.

Privileges | Read/Write
Type | java.lang.String

### RemoteJNDIName

The remote JNDI name of the remote destination.

Privileges | Read/Write
Type | java.lang.String

### TimeToLiveDefault

Specifies the default Time-to-Live value (expiration time), in milliseconds, for imported JMS messages. The expiration time set on JMS messages will override this value unless the `SAF Default Time-to-Live Enabled` field is switched on, which then overrides the expiration time in JMS messages on imported destinations.

Any change to this value affects only incoming messages; stored messages are not affected.

Privileges | Read/Write
Type | long
Minimum value | -1

### UnitOfOrderRouting

Specifies the type of routing used to find a SAF agent when using the message Unit-of-Order feature.

- `Hash` indicates that producers use the hash code of a message Unit-of-Order to find a SAF agent.

- `PathService` indicates that producers use the Path Service to find a SAF agent.

Privileges | Read/Write
Type | java.lang.String
Legal Values | Hash PathService

### UseSAFTimeToLiveDefault

Controls whether the Time-to-Live (expiration time) value set on imported JMS messages will be overridden by the value specified in the `SAF Default Time-to-Live` field.

Any change to this parameter affects only incoming messages; stored messages are not affected.

Privileges | Read/Write
Type | boolean

## Operations

This section describes the following operations:

isSet unSet |

### isSet

Return true if the given property has been explicitly set in this bean.

Operation Name | `"isSet"`
Parameters | `Object [] { propertyName }` where: `propertyName` is an object of type `java.lang.String` that specifies: property to check
Signature | `String [] { "java.lang.String" }`
Returns | `boolean`
Exceptions | `java.lang.IllegalArgumentException` IllegalArgumentException if propertyName is not a recognized property

### unSet

Restore the given property to its default value.

Operation Name | `"unSet"`
Parameters | `Object [] { propertyName }` where: `propertyName` is an object of type `java.lang.String` that specifies: property to restore
Signature | `String [] { "java.lang.String" }`
Returns | `void`
Exceptions | `java.lang.IllegalArgumentException` UnsupportedOperationException if called on a runtime implementation.