How to set a reference attribute to None
dbeniteza opened this issue · 3 comments
Let's suppose the following simple WDT model for a domain with the following JMS resources: 2 UniformDistributedQueue and 1 Quota. The first UniformDistributedQueue, test_queue-u0, has configured as ErrorDestination the second UniformDistributedQueue (error_queue-u0) and as Quota the quota-u0 resource.
resources:
JMSSystemResource:
test_jms_module:
JmsResource:
UniformDistributedQueue:
test_queue-u0:
JNDIName: test_queue/udq/u0
LoadBalancingPolicy: Random
LocalJNDIName: test_queue-udq-u0
Quota: quota-u0
DeliveryFailureParams:
ErrorDestination: error_queue-u0
ExpirationLoggingPolicy: "%header%,%properties%,JMSDeliveryTime,JMSRedeliveryLimit"
ExpirationPolicy: Log
RedeliveryLimit: 10
error_queue-u0:
JNDIName: error_queue/udq/u0
LoadBalancingPolicy: Random
LocalJNDIName: error_queue-udq-u0
Quota:
quota-u0:
BytesMaximum: 5000
MessagesMaximum: 50
Target: my_cluster-c01Now I want to update the test_queue-u0 resource: unset the ErrorDestination and Quota values. These MBeans are references to other resources. I can achieve this update through the console by simply set to None the reference (see screenshots below):

How can this update be done through a WDT model? I've tried setting ErrorDestination and Quota attributes for test_queue-u0 resource to blank, None, null or empty string (''), but unfortunately none of these tries worked because WDT expects a reference to an existing resource and it looks for for None, null or empty string ('') resource which doesn't exist. See some of these errors:
- Set ErrorDestination empty:
ErrorDestination:
SEVERE Messages:
1. WLSDPLY-09015: updateDomain deployment failed: Unable to locate destination {} in JMS System Resource null
- Set ErrorDestination to None:
ErrorDestination: None
SEVERE Messages:
1. WLSDPLY-09015: updateDomain deployment failed: Unable to locate destination None in JMS System Resource null
- Set ErrorDestination to empty string:
ErrorDestination: ''
SEVERE Messages:
1. WLSDPLY-09015: updateDomain deployment failed: Unable to locate destination in JMS System Resource null
- Set ErrorDestination to null:
ErrorDestination: null
SEVERE Messages:
1. WLSDPLY-09015: updateDomain deployment failed: Unable to locate destination {} in JMS System Resource null
The only way I could do this update is by removing the entire attributes ErrorDestination and Quota, so they don't appear in the WDT model.
I was expect to do this update in a similar way as the Administration console, by setting to None the appropiate MBean in WDT or leave it empty.
@dbeniteza Yes, this is not something we directly support today. We will treat this as a request for enhancement in a future version of WDT.
For now, you need to delete the enclosing object and recreate it by passing a model to updateDomain that looks something like this:
resources:
JMSSystemResource:
test_jms_module:
JmsResource:
UniformDistributedQueue:
# Delete the existing queue
'!test_queue-u0':
# Recreate it with these values
test_queue-u0:
JNDIName: test_queue/udq/u0
LoadBalancingPolicy: Random
LocalJNDIName: test_queue-udq-u0
DeliveryFailureParams:
ExpirationLoggingPolicy: "%header%,%properties%,JMSDeliveryTime,JMSRedeliveryLimit"
ExpirationPolicy: Log
RedeliveryLimit: 10
error_queue-u0:
JNDIName: error_queue/udq/u0
LoadBalancingPolicy: Random
LocalJNDIName: error_queue-udq-u0
Quota:
quota-u0:
BytesMaximum: 5000
MessagesMaximum: 50
Target: my_cluster-c01
Fix for this issue merged into the develop-4.0 branch. WDT 4.0 is on track for release next month.
WDT 4.0.0 released so closing as resolved.