Azure Service Fabric 5.1.150.9590 on-premise cluster - azure-service-fabric

I am trying to deploy an on-premise 5-node cluster using Azure Service Fabric V5.1.150.9590 on 5 Windows Server 2012 R2 VMs.
Using ClusterConfig.Unsecure.json as pattern, I get the following exception:
Create Cluster failed with exception: System.AggregateException: One or more errors occurred. ---> System.ArgumentExcept
ion: Primary node type node count is not sufficient for reliability level Bronze; You have total primary node type nodes
: 1; the required seed node count for this reliability level is 3.
at System.Fabric.WRPServiceCommon.Common.DeployAnywhereSettingsValidator.ValidatNodeTypes()
at System.Fabric.WRPServiceCommon.Common.DeployAnywhereSettingsValidator.Validate()
at System.Fabric.JsonImpl.ManifestConverter.ConstructClusterManifestBuilder(String jsonClusterConfigPath)
at System.Fabric.JsonImpl.ManifestConverter.System.Fabric.JsonWrapper.IManifestConverter.ConvertFromJsonToXml(String jsonClusterConfigPath)
at System.Fabric.DeploymentManager.<CreateClusterAsyncInternal>d__a.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Fabric.DeploymentManager.<CreateClusterAsync>d__0.MoveNext()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at Microsoft.ServiceFabric.Powershell.ClusterCmdletBase.NewCluster(String clusterConfigurationFilePath, String fabric PackageSourcePath, Boolean rollbackOnFailure)
---> (Inner Exception #0) System.ArgumentException: Primary node type node count is not sufficient for reliability level Bronze; You have total primary node type nodes: 1; the required seed node count for this reliability level is 3.
at System.Fabric.WRPServiceCommon.Common.DeployAnywhereSettingsValidator.ValidatNodeTypes()
at System.Fabric.WRPServiceCommon.Common.DeployAnywhereSettingsValidator.Validate()
at System.Fabric.JsonImpl.ManifestConverter.ConstructClusterManifestBuilder(String jsonClusterConfigPath)
at System.Fabric.JsonImpl.ManifestConverter.System.Fabric.JsonWrapper.IManifestConverter.ConvertFromJsonToXml(String jsonClusterConfigPath)
at System.Fabric.DeploymentManager.<CreateClusterAsyncInternal>d__a.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Fabric.DeploymentManager.<CreateClusterAsync>d__0.MoveNext()<---
I am at my wit's end trying to make this work. Does anyone have a sample of ClusterConfig.json that works with Azure Service Fabric V5.1.150.9590?
Any links to documentation about ClusterConfig.json will also be helpful.

I had the same issues a few days ago. I switched to the latest SF version 5.1.150.9590, but used an old clusterConfig.json, which did not contain the values for reliabilityLevel and isPrimary. But with the below config I managed to setup a cluster. Please note, that this is a three node cluster, with one nodeType, which is marked as primary. So all three nodes are primaries.
{
"name":"SampleCluster",
"clusterManifestVersion":"1.0.0",
"apiVersion":"2015-01-01-alpha",
"nodes":[
{
"nodeName":"vm1",
"iPAddress":"10.0.10.12",
"nodeTypeRef":"NodeType0",
"faultDomain":"fd:/dc1/fd1",
"upgradeDomain":"UD0"
},
{
"nodeName":"vm2",
"iPAddress":"10.0.11.12",
"nodeTypeRef":"NodeType0",
"faultDomain":"fd:/dc1/fd2",
"upgradeDomain":"UD1"
},
{
"nodeName":"vm3",
"iPAddress":"10.0.12.12",
"nodeTypeRef":"NodeType0",
"faultDomain":"fd:/dc1/fd3",
"upgradeDomain":"UD2"
}
],
"diagnosticsFileShare": {
"etlReadIntervalInMinutes": "5",
"uploadIntervalInMinutes": "10",
"dataDeletionAgeInDays": "7",
"etwStoreConnectionString": "file:c:\\ProgramData\\SF\\FileshareETW",
"crashDumpConnectionString": "file:c:\\ProgramData\\SF\\FileshareCrashDump",
"perfCtrConnectionString": "file:c:\\ProgramData\\SF\\FilesharePerfCtr"
},
"properties":{
"reliabilityLevel": "Bronze",
"nodeTypes": [
{
"name": "NodeType0",
"clientConnectionEndpointPort": "19000",
"clusterConnectionEndpoint": "19001",
"httpGatewayEndpointPort": "19080",
"applicationPorts": {
"startPort": "20001",
"endPort": "20031"
},
"ephemeralPorts": {
"startPort": "20032",
"endPort": "20062"
},
"isPrimary": true
}
],
"fabricSettings": [
{
"name": "Setup",
"parameters": [
{
"name": "FabricDataRoot",
"value": "C:\\ProgramData\\SF"
},
{
"name": "FabricLogRoot",
"value": "C:\\ProgramData\\SF\\Log"
}
]
}
]
}
}
[Disclaimer] To be precise: With the above config I managed to solve the particular error. However I am still with some other issues, which seem not related to this problem: Error creating an on-premise multi-machine Service Fabric Cluster

Related

Spring Cloud config client not picking values from Config server

My Config client is not picking the property values from config
server.
http://localhost:8888/customer_service/default
Above Config server endpoint is returning proper values for Config client,
{
"name": "customer_service",
"profiles": [
"default"
],
"label": null,
"version": "c7648db5662dc65aeaad9c91abbf58b41010be7c",
"state": null,
"propertySources": [
{
"name": "https://github.com/prasadrpm/MicroService_config.git/customer_service.properties",
"source": {
"customer.config.location": "XXXX",
"customer.config.name": "YYYY"
}
}
]
}
Config client bootstrap.properties
server.port=8080
spring.application.name=customer_service
spring.cloud.config.enabled=true
spring.cloud.config.name=config_server
spring.cloud.config.uri=http://localhost:8888
Config client Log
2020-04-10 16:47:00.725 INFO 14976 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888
2020-04-10 16:47:03.267 INFO 14976 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=config_server, profiles=[default], label=null, version=c7648db5662dc65aeaad9c91abbf58b41010be7c, state=null
2020-04-10 16:47:03.269 INFO 14976 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-configClient'}]
2020-04-10 16:47:03.280 INFO 14976 --- [ main] com.customer.CustomerServiceApplication : No active profile set, falling back to default profiles: default
...
2020-04-10 16:47:05.164 INFO 14976 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1860 ms
2020-04-10 16:47:05.549 WARN 14976 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customerController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'customer.config.location' in value "${customer.config.location}"
2020-04-10 16:47:05.552 INFO 14976 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2020-04-10 16:47:05.577 INFO 14976 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-04-10 16:47:05.595 ERROR 14976 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customerController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'customer.config.location' in value "${customer.config.location}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:405) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.5.RELEASE.jar:5.2.5.RELEASE]
The URL that returns you correct properties/configuration is: localhost:8888/customer_service/default
Client application is querying for properties based on following data:
c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888
c.c.c.ConfigServicePropertySourceLocator : Located environment: name=config_server, profiles=[default], label=null, version=c7648db5662dc65aeaad9c91abbf58b41010be7c, state=null
b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-configClient'}]
com.customer.CustomerServiceApplication : No active profile set, falling back to default profiles: default
...
So, effectively, client application is calling:
localhost:8888/config_server/default
So, there are two solutions:
delete spring.cloud.config.name=config_server property in bootstrap.properties, and your application should be able to fetch properties.
update value of spring.cloud.config.name to customer_service service. But if you do not provide spring.cloud.config.name explicitly, then client will use spring.application.name as the default value for spring.cloud.config.name.
What annotation you had used here?
It can be easily retrieved like this.
#Value("${customer.config.location}")
private String someOtherProperty;
and it is not needed
spring.cloud.config.name=config_server

Error Adding New Sales Order via REST API - Acumatica

I am trying to add a new sales order, with detail rows, to my Acumatica system using the a custom endpoint I created at:
https://172.16.8.65/entity/ASG_INTEGRATION/6.00.001/SalesOrder
This is the JSON body I am sending in Postman:
{
"OrderType": { "value": "SO" },
"CustomerID": { "value": "6362212668" },
"Details":
[
{
"Account": {"value": "4040" },
"Branch": {"value": "00" },
"InventoryID": { "value": "33964" },
"OrderQty": { "value": 1.000000 }
}
]
}
The reason I had to create the custom End Point was because the "Branch" field that I have on my detail sales order item must be included, and the Default end point did not have the Branch field in its populated fields. (Thanks to this SO Question for pointing the way to that wrinkle!)
But now I get the following error (which does not tell me where to look for the error -- at least that I can see...):
{
"message": "An error has occurred.",
"exceptionMessage": "PX.Data.PXException: Error: The system failed to commit the CurrentDocument row.\r\n at PX.Api.SyImportProcessor.SyStep.a(Object A_0, PXFilterRow[] A_1, PXFilterRow[] A_2) in C:\\Bld2\\AC-FULL2019R113-JOB1\\Sources\\NetTools\\PX.Data\\Api\\Export\\SyImport\\ImportProcessor.cs:line 3638\r\n at PX.Api.SyImportProcessor.ExportTableHelper.ExportTable() in C:\\Bld2\\AC-FULL2019R113-JOB1\\Sources\\NetTools\\PX.Data\\Api\\Export\\SyImport\\ImportProcessor.cs:line 1171",
"exceptionType": "PX.Api.ContractBased.OutcomeEntityHasErrorsException",
"stackTrace": " at System.Monads.ArgumentCheck.CheckNull[TSource](TSource source, Func`1 exceptionSource)\r\n at PX.Api.ContractBased.EntityService.GetOperationResult(EntityImpl entity, EntityExportContextBuilder entityExportContextBuilder, PXSYTable exportedKeys, List`1 errors) in C:\\Bld2\\AC-FULL2019R113-JOB1\\Sources\\NetTools\\PX.Api.ContractBased\\EntityService.cs:line 480\r\n at PX.Api.ContractBased.EntityService.Put(ISystemContract systemContract, String version, String name, EntityImpl entity, CbOperationContext operationContext) in C:\\Bld2\\AC-FULL2019R113-JOB1\\Sources\\NetTools\\PX.Api.ContractBased\\EntityService.cs:line 474\r\n at PX.Api.ContractBased.Soap.SoapFacadeBase.PutImpl(EntityImpl entity) in C:\\Bld2\\AC-FULL2019R113-JOB1\\Sources\\NetTools\\PX.Api.ContractBased\\Soap\\SoapFacadeBase.cs:line 117\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"
}
Any idea where to go next in my debugging?
[Edit:Adding screenshots to address Fernando's question]
There are 2 possible branches, both named the same, and you cannot add both of them to an entity.
And this is in Document Details
Which one should I use? How can I know??? When I replicate what #Fernando shows (I assume using the Document Details "Branch"), I get a "Branch cannot be Empty" error:
OK, my conversation with Fernando was helpful. Here's what I discovered, and here's what worked:
The fact that there are two different ways of selecting "Branch" in the Fields is significant.
One shows up in the "Document Details" PopUp
And one shows up in the Financial Settings -> Financial Information PopUp:
As it turns out BOTH are needed. But they can't both belong to the SalesOrder Entity -- that's not allowed.
So, I extended the SalesOrder Entity with the Financial Settings "Branch"
And, I extended the SalesOrderDetail Entity with the DocumentDetails "Branch"
And then I could do this and it was accepted:
{
"CustomerID": { "value": "76758" },
"OrderType": { "value": "SO" },
"Branch": { "value": "00" },
"Details":
[
{
"Account": { "value": "4040" },
"Branch": { "value": "00" },
"InventoryID": { "value": "33964"},
"OrderQty": { "value": 1.000000 }
}
]
}
Setting the branch in only one of those places would not create an accepted Sales Order record. So this worked and I have a new Sales Order, with a detail line in it.
I cannot remember now, because I tried so many different things, but, I believe that in the 18.200.001 version of SalesOrder, the Branch field already exists in the SalesOrder Detail, but not in SalesOrder. And in the 6.00.001 version it doesn't exist in either. I'm not sure, but I think that is how it is. In case anyone stumbles across this and is using a different version...

Optimization cannot be performed error when trying to get sales price for specific item in acumatica

I am trying to get sales price for specific item in acumatica.
By postman I sent GET request to this URL:
https://my-acumarica-url/entity/Default/17.200.001/SalesPricesInquiry/?$filter=InventoryID eq '1000004'
I got the following error:
{
"message": "An error has occurred.",
"exceptionMessage": "Optimization cannot be performed.The following fields cause the error:\r\nEffectiveAsOf: View Filter has BQL delegate\r\nPriceWorkgroupIsMine: View Filter has BQL delegate\r\nInventoryID: View Filter has BQL delegate\r\nItemClassID: View Filter has BQL delegate\r\nPriceClass: View Filter has BQL delegate\r\nPriceCode: View Filter has BQL delegate\r\nPriceManager: View Filter has BQL delegate\r\nPriceManagerIsMe: View Filter has BQL delegate\r\nPriceType: View Filter has BQL delegate\r\nPriceWorkgroup: View Filter has BQL delegate\r\n",
"exceptionType": "PX.Api.ContractBased.OptimizedExport.CannotOptimizeException",
"stackTrace": " at PX.Api.ContractBased.OptimizedExport.NotWorkingOptimizedExportProvider.get_CanOptimize()\r\n at PX.Api.ContractBased.EntityService.GetList(ISystemContract systemContract, String version, String name, EntityImpl entity, Boolean returnFullEntities, CbOperationContext operationContext, Boolean ignoreValueFields, PXGraph graph)\r\n at PX.Api.ContractBased.Soap.SoapFacadeBase.GetListImpl(Entity entity, Boolean returnFullEntities)\r\n at PX.Api.ContractBased.SystemContracts.V2.RestController.GetList(String objectName, String select, String filter, String expand, String custom, Nullable`1 skip, Nullable`1 top)\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"
}
SalesPricesInquiry is an inquiry and should be accessed via PUT, as the documentation says.
According to Default/17.200.001/swagger.json
"/InventorySummaryInquiry": {
"put": {
"tags": [
"InventorySummaryInquiry"
],
"summary": "Creates a record or updates an existing record.",
"operationId": "InventorySummaryInquiry_PutEntity",
"consumes": [
"application/json",
"text/json"
],
"produces": [
"application/json",
"text/json"
],
A "PUT" will cause an inventory entry to be created.
When I "PUT" Default/17.200.001/InventorySummaryInquiry
{"WarehouseID" : {"Value":"MSE01"}}
I get in response
{
"id": "497b52a8-8a81-4345-bcaa-9b607231886b",
"rowNumber": 1,
"note": null,
"ExpandByLotSerialNbr": {},
"InventoryID": {},
"LocationID": {},
"WarehouseID": {},
"custom": {},
"files": []
}
which does not make sense to me. I have 2000+ items in the "MSE01" warehouse.
I get a new "id" each time I try this, which maybe means a new entry is getting created, and that's what's being returned?

Elasticsearch cluster: java.lang.IllegalStateException: Future got interrupted

After a restart, our Elasticsearch cluster is showing this in the logs:
[2018-08-30T14:13:15,111][ERROR][o.e.x.m.c.c.ClusterStatsCollector] [myelastic01] collector [cluster_stats] failed to collect data
java.lang.IllegalStateException: Future got interrupted
at org.elasticsearch.common.util.concurrent.FutureUtils.get(FutureUtils.java:53) ~[elasticsearch-6.3.2.jar:6.3.2]
at org.elasticsearch.action.support.AdapterActionFuture.actionGet(AdapterActionFuture.java:34) ~[elasticsearch-6.3.2.jar:6.3.2]
(...)
Caused by: java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:998) ~[?:1.8.0_181]
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) ~[?:1.8.0_181]
(...)
[2018-08-30T14:15:22,972][ERROR][o.e.x.m.c.i.IndexStatsCollector] [myelastic01] collector [index-stats] failed to collect data
org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];
at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedException(ClusterBlocks.java:166) ~[elasticsearch-6.3.2.jar:6.3.2]
at org.elasticsearch.action.admin.indices.stats.TransportIndicesStatsAction.checkGlobalBlock(TransportIndicesStatsAction.java:68) ~[elasticsearch-6.3.2.jar:6.3.2]
at org.elasticsearch.action.admin.indices.stats.TransportIndicesStatsAction.checkGlobalBlock(TransportIndicesStatsAction.java:45) ~[elasticsearch-6.3.2.jar:6.3.2]
at org.elasticsearch.action.support.broadcast.node.TransportBroadcastByNodeAction$AsyncAction.<init>(TransportBroadcastByNodeAction.java:255) ~[elasticsearch-6.3.2.j
ar:6.3.2]
[2018-08-30T14:18:50,307][WARN ][r.suppressed ] path: /.kibana/_search, params: {ignore_unavailable=true, index=.kibana, filter_path=aggregations.types.buckets}
org.elasticsearch.action.search.SearchPhaseExecutionException: all shards failed
at org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:288) ~[elasticsearch-6.3.2.jar:6.3.2]
at org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:128) ~[elasticsearch-6.3.2.jar:6.3.2]
at org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:249) ~[elasticsearch-6.3.2.jar:6.3.2]
(...)
[2018-08-30T14:18:50,304][WARN ][r.suppressed ] path: /.kibana/doc/config%3A6.3.2, params: {index=.kibana, id=config:6.3.2, type=doc}
org.elasticsearch.action.NoShardAvailableActionException: No shard available for [get [.kibana][doc][config:6.3.2]: routing [null]]
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.perform(TransportSingleShardAction.java:207) ~[elasticsearch-6.3.2.jar:
6.3.2]
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.start(TransportSingleShardAction.java:186) ~[elasticsearch-6.3.2.jar:6.
3.2]
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction.doExecute(TransportSingleShardAction.java:95) ~[elasticsearch-6.3.2.jar:6.3.2]
(...)
This is a ELK stack which was working before, the configuration has not been modified. What could be the cause? I've searched around but found nothing relevant.

OrientDB ETL load with local connection

I am trying to load data using oetl.sh with JDBC driver for suource data (Oracle). It appears to work with remote connection but wants to get a better performance with local. Any idea what appears to be a problem.
BEGIN ETL PROCESSOR
Started parallel execution with 8 threads
Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-1,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6d33fda5
Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-7,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#584dbc8c
Exception in thread "OrientDB ETL pipeline-1" Exception in thread "OrientDB ETL pipeline-7" Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-0,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6b6afd0
Exception in thread "OrientDB ETL pipeline-0" com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-1,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6d33fda5
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-0,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6b6afd0
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-7,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#584dbc8c
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-2,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#5a86e53b
Exception in thread "OrientDB ETL pipeline-2" com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-2,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#5a86e53b
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-4,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
Exception in thread "OrientDB ETL pipeline-4" com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-4,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-5,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
Exception in thread "OrientDB ETL pipeline-5" com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-5,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-3,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
Exception in thread "OrientDB ETL pipeline-3" com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-3,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
Error in Pipeline execution: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-6,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
Exception in thread "OrientDB ETL pipeline-6" com.orientechnologies.orient.etl.OETLProcessHaltedException: Halt
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:149)
at com.orientechnologies.orient.etl.OETLProcessor$2.run(OETLProcessor.java:332)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Current database instance (com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#6c640ef) is not active on current thread (Thread[OrientDB ETL pipeline-6,5,main]). Current active database is: com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx#20d373c8
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.checkIfActive(ODatabaseDocumentTx.java:3243)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.getTransaction(ODatabaseDocumentTx.java:1547)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:233)
at com.orientechnologies.orient.core.index.OIndexTxAwareOneValue.get(OIndexTxAwareOneValue.java:41)
at com.orientechnologies.orient.etl.transformer.OAbstractLookupTransformer.lookup(OAbstractLookupTransformer.java:87)
at com.orientechnologies.orient.etl.transformer.OEdgeTransformer.executeTransform(OEdgeTransformer.java:122)
at com.orientechnologies.orient.etl.transformer.OAbstractTransformer.transform(OAbstractTransformer.java:37)
at com.orientechnologies.orient.etl.OETLPipeline.execute(OETLPipeline.java:115)
... 2 more
//alert:
{
"config": {
// "log": "debug",
"parallel": true
},
"extractor" : {
"jdbc": { "driver": "oracle.jdbc.driver.OracleDriver",
"url": "jdbc:oracle:thin:#hostname:port/dbname",
"userName": "schema1",
"userPassword": "password",
"query": "select * from MC_ALERT$" }
},
"transformers" : [
{ "vertex": { "class":"MC_ALERT"} }
],
"loader": {
"orientdb": {
//"dbURL": "remote:localhost/Users/dbadmin/workspace/orientdbEnprise2.1.8/databases/messaging",
"dbURL": "plocal:/Users/dbadmin/workspace/orientdbEnprise2.1.8/databases/messaging",
"dbType": "graph",
"dbUser": "admin",
"dbPassword": "admin",
"dbAutoCreate": true,
"batchCommit": 1000,
"indexes": [
{
"class": "MC_ALERT",
"fields": [ "ALERT_UUID:string" ],
"type": "UNIQUE"
}
]
}
}
}
//userRead:
{
"config": {
"parallel": true
},
"extractor" : {
"jdbc": { "driver": "oracle.jdbc.driver.OracleDriver",
"url": "jdbc:oracle:thin:#hostname:port/dbname",
"userName": "schema1",
"userPassword": "password",
"query": "select a.* from MC_ALERT_USER_READ$ a, MC_ALERT$ b where a.alert_id = b.alert_uuid" }
},
"transformers" : [
{ "vertex": { "class":"MC_ALERT_USER_READ"} },
{ "edge": { "class": "has_alert_read",
"joinFieldName": "ALERT_ID",
"lookup": "mc_alert.ALERT_UUID",
"unresolvedLinkAction":"CREATE",
"direction": "in"
},
"skipDuplicates": true
}
],
"loader": {
"orientdb": {
//"dbURL": "remote:localhost/Users/dbadmin/workspace/orientdbEnprise2.1.8/databases/messaging",
"dbURL": "plocal:/Users/dbadmin/workspace/orientdbEnprise2.1.8/databases/messaging",
"dbType": "graph",
"dbUser": "admin",
"dbPassword": "admin",
"dbAutoCreate": true,
"batchCommit": 1000,
"classes": [
{"name": "MC_ALERT","extends": "V"},
{"name": "MC_ALERT_USER_READ", "extends": "V"},
{"name": "HAS_ALERT_READ", "extends": "E"}
],
"indexes": [
{
"class": "MC_ALERT_USER_READ",
"fields": [ "CLIENT_OID:string","USER_OID:string","ALERT_ID:string"],
//"fields": [ "alert_id:string"],
"type": "UNIQUE"
}
]
}
}
}