diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java
index 55e38b6687ada1511b065fadd1fb68c4d99f290c..93afc976d554ffe86976320a3e0d56fd7b591191 100644
--- a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java
+++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java
@@ -20,12 +20,15 @@
 package org.etsi.osl.tmf.sim638.api;
 
 import java.io.IOException;
-
+import java.util.Date;
+import java.util.Map;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.ObjectMapper;
-
+import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
+import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
+import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.model.dataformat.JsonLibrary;
 import org.apache.commons.logging.Log;
@@ -44,6 +47,11 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.stereotype.Component;
 
 import org.etsi.osl.model.nfv.DeploymentDescriptor;
+import org.etsi.osl.model.nfv.ExperimentMetadata;
+import org.etsi.osl.model.nfv.Product;
+import org.etsi.osl.model.nfv.ValidationJob;
+import org.etsi.osl.model.nfv.ValidationStatus;
+import org.etsi.osl.model.nfv.VxFMetadata;
 
 @Configuration
 //@RefreshScope
@@ -111,6 +119,9 @@ public class ServiceApiRouteBuilder extends RouteBuilder {
 	@Override
 	public void configure() throws Exception {
 		
+	  
+      
+      
 		from( CATALOG_ADD_SERVICE )
 		.log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICE + " message received and will be processed for service inventory!")
 		.to("log:DEBUG?showBody=true&showHeaders=true")
@@ -188,8 +199,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder {
 		.unmarshal().json( JsonLibrary.Jackson, DeploymentDescriptor.class, true)
 		.bean( serviceRepoService, "nfvCatalogNSResourceChanged(${body})");
 		
-		
-		
+
 
         from( EVENT_RESOURCE_STATE_CHANGED )
         .log(LoggingLevel.INFO, log, EVENT_RESOURCE_STATE_CHANGED + " message received and will be processed for service inventory!")
@@ -199,6 +209,13 @@ public class ServiceApiRouteBuilder extends RouteBuilder {
         
 
         from( EVENT_RESOURCE_CREATE )
+        .errorHandler(deadLetterChannel("direct:retriesDeadLetters")
+            .maximumRedeliveries(5)
+            .redeliveryDelay(1000).useOriginalMessage()
+            .logExhausted(true)
+            .logHandled(true)
+            .retriesExhaustedLogLevel(LoggingLevel.ERROR)
+            .retryAttemptedLogLevel(LoggingLevel.ERROR))     
         .log(LoggingLevel.INFO, log, EVENT_RESOURCE_CREATE + " message received and will be processed for service inventory!")
         .to("log:DEBUG?showBody=true&showHeaders=true")
         .unmarshal().json( JsonLibrary.Jackson, ResourceCreateNotification.class, true)
@@ -208,15 +225,33 @@ public class ServiceApiRouteBuilder extends RouteBuilder {
         
         
         from( EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED )
+        .errorHandler(deadLetterChannel("direct:retriesDeadLetters")
+            .maximumRedeliveries(5)
+            .redeliveryDelay(1000).useOriginalMessage()
+            .logExhausted(true)
+            .logHandled(true)
+            .retriesExhaustedLogLevel(LoggingLevel.ERROR)
+            .retryAttemptedLogLevel(LoggingLevel.ERROR))        
+          
         .log(LoggingLevel.INFO, log, EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED + " message received and will be processed for service inventory!")
         .to("log:DEBUG?showBody=true&showHeaders=true")
         .unmarshal().json( JsonLibrary.Jackson, ResourceAttributeValueChangeNotification.class, true)
         .bean( serviceRepoService, "resourceAttrChangedEvent(${body})");
 		
         
+        
+        /**
+         * dead Letter Queue msgs if everything fails to connect
+         */
+        from("direct:retriesDeadLetters")
+        //.setBody()
+        //.body(String.class)
+        //.process( ErroneousValidationProcessor )
+        .to("log:DEBUG?showBody=true&showHeaders=true")
+        .to("stream:out");
 	}
 	
-	
+	   
 	static String toJsonString(Object object) throws IOException {
 		ObjectMapper mapper = new ObjectMapper();
 		mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
diff --git a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java
index d38b8ad4523385261576bd1e06fdc3c03025d4bb..eaf0609a083947ceee28114efacb3f886ee9b9f2 100644
--- a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java
+++ b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java
@@ -818,6 +818,7 @@ public class ServiceRepoService {
 //		this.updateService( parentServiceId, servUpd, false, null, childService);
 //	}
 
+    @Transactional  
 	public String getServiceEagerAsString(String id) throws JsonProcessingException {
 		Service s = this.getServiceEager(id);
 		ObjectMapper mapper = new ObjectMapper();
@@ -837,7 +838,8 @@ public class ServiceRepoService {
 		
 		return res;
 	}
-	
+
+    @Transactional  
 	public Service getServiceEager(String id) {
 		if ( id == null || id.equals("")) {
 			return null;
@@ -904,6 +906,7 @@ public class ServiceRepoService {
 	/**
 	 * @return
 	 */
+    @Transactional  
 	public List<ServiceActionQueueItem> findAllServiceActionQueueItems() {
 
 		return (List<ServiceActionQueueItem>) this.serviceActionQueueRepo.findFirst10ByOrderByInsertedDate();
@@ -934,6 +937,7 @@ public class ServiceRepoService {
 	 * @param id
 	 * @return
 	 */
+    @Transactional  
 	public Void deleteServiceActionQueueItemByUuid(String id) {
 		
 		Optional<ServiceActionQueueItem> optso = this.serviceActionQueueRepo.findByUuid(id);
@@ -1077,40 +1081,46 @@ public class ServiceRepoService {
 
     @Transactional	
 	public void  resourceAttrChangedEvent(@Valid ResourceAttributeValueChangeNotification resNotif) {
+      try {
+        
+        logger.debug("ResourceAttributeValueChangeNotification"); 
+        Resource res = resNotif.getEvent().getEvent().getResource();
+        logger.info("Will update services related to this resource with id = " + res.getId() );
+        
+        var aservices = findServicesHavingThisSupportingResourceID(  res.getId() );
+        
+        for (Service as : aservices) {
+            
+            Service aService = findByUuid(as.getId()); 
+            
+            //if ( aService.getState().equals( ServiceStateType.ACTIVE )  ) {
+                
+  
+                ServiceUpdate supd = new ServiceUpdate();
+                
+                //copy characteristics from resource to service
+                
+                for (org.etsi.osl.tmf.ri639.model.Characteristic rChar : res.getResourceCharacteristic()) {
+                  Characteristic cNew = new Characteristic();
+                  cNew.setName( rChar.getName());
+                  cNew.value( new Any( rChar.getValue() ));                
+                  supd.addServiceCharacteristicItem( cNew );  
+                }
+                
+                
+                Note n = new Note();
+                n.setText("Supporting Resource Attribute Changed with id: " + res.getId());
+                n.setAuthor( "SIM638-API" );
+                n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() );
+                supd.addNoteItem( n );                  
+                
+                this.updateService( aService.getId(), supd , true, null, null); //update the service            
+            //}
+        }
       
-      logger.debug("ResourceAttributeValueChangeNotification"); 
-      Resource res = resNotif.getEvent().getEvent().getResource();
-      logger.info("Will update services related to this resource with id = " + res.getId() );
-      
-      var aservices = findServicesHavingThisSupportingResourceID(  res.getId() );
-      
-      for (Service as : aservices) {
-          
-          Service aService = findByUuid(as.getId()); 
-          
-          //if ( aService.getState().equals( ServiceStateType.ACTIVE )  ) {
-              
 
-              ServiceUpdate supd = new ServiceUpdate();
-              
-              //copy characteristics from resource to service
-              
-              for (org.etsi.osl.tmf.ri639.model.Characteristic rChar : res.getResourceCharacteristic()) {
-                Characteristic cNew = new Characteristic();
-                cNew.setName( rChar.getName());
-                cNew.value( new Any( rChar.getValue() ));                
-                supd.addServiceCharacteristicItem( cNew );  
-              }
-              
-              
-              Note n = new Note();
-              n.setText("Supporting Resource Attribute Changed with id: " + res.getId());
-              n.setAuthor( "SIM638-API" );
-              n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() );
-              supd.addNoteItem( n );                  
-              
-              this.updateService( aService.getId(), supd , true, null, null); //update the service            
-          //}
+      }catch (Exception e) {
+        e.printStackTrace();
       }
       
     }
@@ -1118,20 +1128,32 @@ public class ServiceRepoService {
     
     @Transactional  
     public void  resourceCreatedEvent(@Valid ResourceCreateNotification resNotif) {  
-      Resource res = resNotif.getEvent().getEvent().getResource();    
-      logger.debug("resourceCreatedEvent for: " + res.getName()); 
-      updateServiceFromresourceChange(res);
+      try {
+        Resource res = resNotif.getEvent().getEvent().getResource();    
+        logger.debug("resourceCreatedEvent for: " + res.getName()); 
+        updateServiceFromresourceChange(res);
+      }catch (Exception e) {
+        e.printStackTrace();
+      }
+      
     }
     
 
     @Transactional
     public void resourceStateChangedEvent(@Valid ResourceStateChangeNotification resNotif) {
+      try {
+        
+        Resource res = resNotif.getEvent().getEvent().getResource();
+        logger.debug("resourceStateChangedEvent for: " + res.getName()); 
+        updateServiceFromresourceChange(res);
 
-      Resource res = resNotif.getEvent().getEvent().getResource();
-      logger.debug("resourceStateChangedEvent for: " + res.getName()); 
-      updateServiceFromresourceChange(res);
+      }catch (Exception e) {
+        e.printStackTrace();
+      }
+    
     }
-      
+
+    @Transactional  
     private void updateServiceFromresourceChange(Resource res) {
 
       logger.info("Will update services related to this resource with id = " + res.getId() );
@@ -1172,6 +1194,7 @@ public class ServiceRepoService {
 
     }
 
+    @Transactional  
     private void updateResourceFromKubernetesLabel(Resource res) {
       logger.debug("updateResourceFromKubernetesLabel for: " + res.getName());