gpt4 book ai didi

java - App Engine Java JDO 中的单元测试 XG 跨组事务

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:38 25 4
gpt4 key购买 nike

我在 App Engine java jdo 中有一个跨组事务。

它在本地开发应用引擎服务器上运行良好。

但是,从单元测试中,我得到一个 java.lang.IllegalArgumentException: transactions on multiple entity groups only allowed in High Replication applications

是否可以使用 LocalServiceTestHelper 模拟高复制应用程序?

我正在使用 1.6.6。

这是我的类(class),您可以按原样运行它以重现:

public class Ds2Test {

private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

private static final PersistenceManagerFactory pmfXgInstance =
JDOHelper.getPersistenceManagerFactory("xg-transactions");

@Before
public void setUp() {
helper.setUp();
}

@After
public void tearDown() {
helper.tearDown();
}

@Test
public void testXgTransaction() throws Exception {
PersistenceManager xgPm = pmfXgInstance.getPersistenceManager();
Transaction xgTx = xgPm.currentTransaction();
xgTx.begin();

xgTx.commit();
xgPm.close();
}
}

这里是 jdoconfig.xml 中的配置:

   <persistence-manager-factory name="xg-transactions">
<property name="javax.jdo.PersistenceManagerFactoryClass"
value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>
<property name="javax.jdo.option.ConnectionURL" value="appengine"/>
<property name="javax.jdo.option.NontransactionalRead" value="true"/>
<property name="javax.jdo.option.NontransactionalWrite" value="true"/>
<property name="javax.jdo.option.RetainValues" value="true"/>
<property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
<property name="datanucleus.appengine.datastoreEnableXGTransactions" value="true"/>
</persistence-manager-factory>

异常在 xgTx.begin(); 上抛出

最佳答案

好的。我找到了需要做的事情。

private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()**.setDefaultHighRepJobPolicyUnappliedJobPercentage(100))**;

见于:https://developers.google.com/appengine/docs/java/tools/localunittesting#Writing_HRD_Datastore_Tests

有点晦涩的设置,但就是这样。

关于java - App Engine Java JDO 中的单元测试 XG 跨组事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com