Код: Выделить всё
10905 TXN_WAIT_FOR_TRANSACTION_END ERROR Processing of transaction event
continued to be in standby status. Other transactions may be under execution.
Multiple clients are executing transactions in the same container at the same time.
Transactions on standby will be executed when the earlier transactions end.
Ниже приведен упрощенный пример того, как я пытаюсь одновременно выполнить несколько транзакций в Java:< /p>
Код: Выделить всё
import com.toshiba.mwcloud.gs.Container;
import com.toshiba.mwcloud.gs.GridStore;
import com.toshiba.mwcloud.gs.GridStoreFactory;
import com.toshiba.mwcloud.gs.Row;
import com.toshiba.mwcloud.gs.GSException;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
public class GridDBTransactionTest {
public static void main(String[] args) {
try {
GridStore store = GridStoreFactory.getInstance().getGridStore();
Container container = store.getContainer("SampleContainer");
ExecutorService executorService = Executors.newFixedThreadPool(3);
for (int i = 0; i < 3; i++) {
executorService.submit(() -> {
try {
store.setAutoCommit(false);
container.put(new Row(1, "Sample Data")); // Sample operation
store.commit();
} catch (GSException e) {
e.printStackTrace();
}
});
}
executorService.shutdown();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Как я могу обработать или избежать этой ошибки при выполнении нескольких транзакций на тот же контейнер в GridDB?
Есть ли способ безопасно управлять параллельными транзакциями в GridDB, чтобы исключить возникновение взаимоблокировок или условий ожидания?
Следует ли мне скорректировать использование модели транзакций или реализовать какой-либо механизм синхронизации для лучшего управления параллелизмом?
Будем очень признательны за любые рекомендации по решению или смягчению этой проблемы!
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... g-multiple
Мобильная версия