기존의 ActivePivot 큐브에 새 측정 값을 추가하려고합니다. Sanbox 프로젝트에 측정 값을 추가하기 시작했습니다. 괜찮 았어. 새로운 측정 값을 볼 수 있었고 모든 요소의 합계를 구할 수있었습니다. 나는 다음과 같은 라인을 추가 :이 방법은 너무 잘 작동하지 않습니다ActivePivot에 새로운 측정 값을 추가 하시겠습니까?
EquityDerivativesCube.xml:
<measure name="test" aggregationFunctions="SUM"/>
SandboxFields.xml:
<field name="test" type="double" defaultValue="0" />
PNLCalculator#PNLCalculatorResult.java
private Double test;
public Double getTest() {
return test;
}
public void setTest(Double test) {
this.test = test;
}
PNLCalculator.enrichTrade()
...
result.setTest(2.);
...
실제-응용 프로그램을. 나는 다음과 같은 라인을 추가 :
RealWorldApplicationSchema.xml
<field name="Test" type="double" defaultValue="0" />
에
RealWorldApplicationCube.xml
<measure name="Test" aggregationFunctions="SUM" folder="Dev\Test" />
속으로
를 데이터는 CSV 파일에서로드됩니다. Applcation이 처리 할 수있는 각 파일의 모든 필드를 정의하는 CSV 파일이 있습니다.
...;Test=N/A;
다른 모든 측정 값을 처리하는 계산기도 있습니다. 나는 이것을 다음과 같이 확장했다 :
public void computeTest(IRelationalEntry entry) {
double price = org.apache.commons.collections.MapUtils.getDouble(entry, "price", 0.);
double test = price * 2;
entry.put("Test", test);
}
나는 응용 프로그램을 실행할 때 몇 가지 예외가 생기고 새로운 측정 값을 볼 수 없다. 다음은 예외입니다 :
com.quartetfs.fwk.transaction.TransactionException: [Transaction manager: ActivePivot] Prepare commit operation failed because an exception has been raised. You must now rollback the transaction. at com.quartetfs.fwk.transaction.impl.ATransactionManager.prepareCommit(ATransactionManager.java:130) at com.quartetfs.fwk.transaction.impl.ATransactionManager.commit(ATransactionManager.java:142) at com.quartetfs.tech.store.impl.ARelationalTransactionManager.commit(ARelationalTransactionManager.java:139) at com.quartetfs.tech.store.impl.ARelationalTransactionManager.commit(ARelationalTransactionManager.java:51) at com.real.world.application.impl.ATransactionExceptionAwareHandler.doSubmit(ATransactionExceptionAwareHandler.java:97) at com.real.world.application.impl.ATransactionExceptionAwareHandler.submit(ATransactionExceptionAwareHandler.java:51) at com.quartetfs.tech.store.impl.TransactionHandlerListener.receive(TransactionHandlerListener.java:61) at com.quartetfs.tech.store.csv.impl.FilteredSource.receive(FilteredSource.java:56) at com.quartetfs.fwk.messaging.impl.ParserContext.publishChunk(ParserContext.java:457) at com.quartetfs.fwk.messaging.impl.ParserContext.awaitTermination(ParserContext.java:382) at com.quartetfs.fwk.messaging.impl.CSVSource.process(CSVSource.java:308) at com.quartetfs.fwk.messaging.impl.CSVSource.onFileAction(CSVSource.java:282) at com.quartetfs.fwk.messaging.impl.AFileWatcher.filesAction(AFileWatcher.java:277) at com.quartetfs.fwk.messaging.impl.AFileWatcher.doInterval(AFileWatcher.java:267) at com.quartetfs.fwk.messaging.impl.AFileWatcher.startScheduling(AFileWatcher.java:125) at com.quartetfs.fwk.messaging.impl.AFileWatcher.start(AFileWatcher.java:107) at com.quartetfs.fwk.messaging.impl.CSVSource.start(CSVSource.java:182) at com.quartetfs.tech.store.csv.impl.ExtendedCSVDataModelFactory$1.run(ExtendedCSVDataModelFactory.java:217) at java.lang.Thread.run(Thread.java:662) Caused by: com.quartetfs.fwk.transaction.TransactionException: [Transaction manager: RealWorldApplicationSchema] Prepare commit operation failed because an exception has been raised. You must now rollback the transaction. at com.quartetfs.fwk.transaction.impl.ATransactionManager.prepareCommit(ATransactionManager.java:130) at com.quartetfs.tech.store.impl.ARelationalTransactionManager.doPrepareCommit(ARelationalTransactionManager.java:113) at com.quartetfs.fwk.transaction.impl.ATransactionManager.prepareCommit(ATransactionManager.java:128) ... 18 more Caused by: com.quartetfs.fwk.transaction.TransactionException: One of the schema transaction contribution tasks failed. at com.quartetfs.biz.pivot.transaction.impl.ActivePivotSchemaTransaction.prepareCommit(ActivePivotSchemaTransaction.java:239) at com.quartetfs.biz.pivot.impl.ActivePivotSchemaTransactionManager.doPrepareCommit(ActivePivotSchemaTransactionManager.java:194) at com.quartetfs.fwk.transaction.impl.ATransactionManager.prepareCommit(ATransactionManager.java:128) ... 20 more Caused by: java.lang.RuntimeException: com.quartetfs.biz.pivot.ClassificationException: The calculator has thrown an exception during the evaluation of the object: RelationalEntry [type=ActivePivot, key=Key [ ... ,Test=null, ...]] at jsr166y.ForkJoinTask.completeExceptionally(ForkJoinTask.java:1116) at jsr166y.cancellable.impl.CancellableCountedCompleter.onCompletion(CancellableCountedCompleter.java:132) at jsr166y.CountedCompleter.tryComplete(CountedCompleter.java:391) at com.quartetfs.biz.pivot.transaction.impl.ActivePivotSchemaTransaction$ContributeAction.afterCompute(ActivePivotSchemaTransaction.java:492) at jsr166y.cancellable.impl.CancellableCountedCompleter.compute(CancellableCountedCompleter.java:96) at jsr166y.CountedCompleter.exec(CountedCompleter.java:437) at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:265) at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:976) at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1480) at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:105) Caused by: com.quartetfs.biz.pivot.ClassificationException: The calculator has thrown an exception during the evaluation of the object: RelationalEntry [type=ActivePivot, key=Key [ ... ,Test=null, ...]] at com.quartetfs.biz.pivot.classification.impl.Classifier.classifyAll(Classifier.java:114) at com.quartetfs.biz.pivot.transaction.impl.ActivePivotSchemaTransaction$ContributeAction.compute(ActivePivotSchemaTransaction.java:446) at com.quartetfs.biz.pivot.transaction.impl.ActivePivotSchemaTransaction$ContributeAction.computeSafely(ActivePivotSchemaTransaction.java:487) at jsr166y.cancellable.impl.CancellableCountedCompleter.compute(CancellableCountedCompleter.java:91) ... 5 more Caused by: com.quartetfs.biz.pivot.ClassificationException: Classification failure for level "Test": the mandatory property "Test" is not found. Contribution key: "Key [ ... ,Test=null, ...]]. at com.quartetfs.biz.pivot.classification.impl.ResultClassificationProcedure.execute(ResultClassificationProcedure.java:192) at com.quartetfs.biz.pivot.classification.impl.ClassificationTree$ClassificationNode.execute(ClassificationTree.java:215) at com.quartetfs.biz.pivot.classification.impl.ClassificationTree$ClassificationNode.execute(ClassificationTree.java:235) at com.quartetfs.biz.pivot.classification.impl.ClassificationTree.execute(ClassificationTree.java:57) at com.quartetfs.biz.pivot.classification.impl.Classifier.classify(Classifier.java:161) at com.quartetfs.biz.pivot.classification.impl.Classifier.classifyAll(Classifier.java:110) ... 8 more
06.02.2013 16:09:24 com.real.world.application.impl.ATransactionExceptionAwareHandler doSubmit
내가 무엇이 누락 되었습니까? 큐브에 새 측정 값을 추가하려면 어떻게합니까? 계산기에서 오류의 원인은 무엇입니까?
코드를 디버깅하는 동안 계산기 메서드 (computeTest())를 방문하고 값을 RelationalEntry로 설정합니다.
건배
안녕 앙뜨랑에게 직접 가져 오는 것입니다. 귀하의 답변에 감사드립니다. 문제 추적을 위해 SO를 사용하려고하지 않습니다. 나는 단지 내가 원하는 것을 어떻게 얻을 수 있는지 알고 싶다. 새로운 측정 값을 제거하면 모든 것이 잘 작동합니다. try-block에서 계산기 평가 메서드에 코드를 넣었으며 아무 예외도이 곳에서 발견되지 않았습니다. 그래서 나는 주어진 예외가 의미하는 것을 비판하지 않으며 어떻게 해결할 수 있습니까? 하지만 나에게 그것은 시스템의 다른 곳에서 문제가되지 않는다. 건배! – overf7owed
그건 우리가 고객 지원이라고 부르는 것입니다;) 문제 없습니다, 우리가 당신을 도울 수 있도록 Quartet FS 지원 사이트에서 문제를 포착하십시오. –