Thanks,

I've a few more questions, just to be clear:
1. Are servers behind NAT or some kind of balancer, or do they have
distinct static IP addresses?
2. Do you specify all servers addresses in cfg.SetEndPoints("X.X.X.X");, or
only one?

Best Regards,
Igor


On Thu, Feb 4, 2021 at 4:47 AM 18624049226 <18624049...@163.com> wrote:

> Hello Igor,
>
> If start two nodes on two hosts and create a cluster, you can reproduce
> this problem. If start multiple server nodes on one host, it seems that
> there is no problem.
> Thin clients only need one.
> 在 2021/2/3 下午10:02, Igor Sapego 写道:
>
> Hi, I've tried to reproduce an issue you described and could not reproduce
> it.
>
> Can you share more details? How many nodes do you run? How many clients
> are run? Do you run any other operations in parallel?
>
> Best Regards,
> Igor
>
>
> On Wed, Feb 3, 2021 at 3:00 PM 18624049226 <18624049...@163.com> wrote:
>
>> Hi team,
>>
>> Using the 2.10 branch code and the transaction function of cpp thin
>> client, the transaction with id 1 not found error will be throw. the
>> reproduce steps are as follows:
>>
>> 1.start a node use the following config file:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans xmlns="http://www.springframework.org/schema/beans";
>> <http://www.springframework.org/schema/beans>
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> <http://www.w3.org/2001/XMLSchema-instance>
>> xsi:schemaLocation="
>> http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans.xsd";>
>> <bean id="grid.cfg" class=
>> "org.apache.ignite.configuration.IgniteConfiguration">
>> <property name="clientMode" value="false" />
>> <property name="peerClassLoadingEnabled" value="true"/>
>> <property name="binaryConfiguration">
>> <bean class="org.apache.ignite.configuration.BinaryConfiguration">
>> <property name="compactFooter" value="false" />
>> <property name="idMapper">
>> <bean class="org.apache.ignite.binary.BinaryBasicIdMapper">
>> <property name="lowerCase" value="true" />
>> </bean>
>> </property>
>> </bean>
>> </property>
>> <property name="dataStorageConfiguration">
>> <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
>> <property name="defaultDataRegionConfiguration">
>> <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
>> <property name="name" value="default" />
>> <property name="maxSize" value="#{1L * 1024 * 1024 * 1024}" />
>> <property name="persistenceEnabled" value="false" />
>> </bean>
>> </property>
>> </bean>
>> </property>
>> </bean>
>> </beans>
>>
>> 2.test code are as follows:
>>
>> Usually only the first few loop operations may throw an exception, and
>> the subsequent operations are normal.
>> #include <stdint.h>
>> #include <iostream>
>> #include <ignite/thin/ignite_client.h>
>> #include <ignite/thin/cache/cache_client.h>
>> #include "ignite/examples/organization.h"
>> using namespace ignite;
>> using namespace thin;
>> using namespace cache;
>> using namespace examples;
>> int main()
>> {
>> IgniteClientConfiguration cfg;
>> cfg.SetEndPoints("X.X.X.X");
>> try
>> {
>> IgniteClient client = IgniteClient::Start(cfg);
>> CacheClient<int32_t, Organization> cache = client.GetOrCreateCache<
>> int32_t, Organization>("PutGetExample");
>> cache.Clear();
>> int loop = 100;
>> for (int i = 0; i < loop; i++)
>> {
>> ignite::thin::transactions::ClientTransaction transaction = client.
>> ClientTransactions().TxStart();
>> Organization org("Microsoft", Address("1096 Eddy Street, San Francisco,
>> CA", i));
>> cache.Put(1, org);
>> transaction.Commit();
>> }
>> Organization orgFromCache = cache.Get(1);
>> }
>> catch (IgniteError& err)
>> {
>> std::cout << "An error occurred: " << err.GetText() << std::endl;
>> return err.GetCode();
>> }
>> return 0;
>> }
>>
>> 3.server side's log are as follows:
>> [11:25:35,496][SEVERE][client-connector-#117][ClientListenerNioListener]
>> Failed to process client request [req=
>> o.a.i.i.processors.platform.client.tx.ClientTxEndRequest@569bc2e0]
>> class
>> org.apache.ignite.internal.processors.platform.client.IgniteClientException:
>> Transaction with id 1 not found.
>> at
>> org.apache.ignite.internal.processors.platform.client.tx.ClientTxEndRequest.process(ClientTxEndRequest.java:59)
>> at
>> org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:98)
>> at
>> org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:195)
>> at
>> org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49)
>> at
>> org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
>> at
>> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
>> at
>> org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
>> at
>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>> at
>> org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>> at java.lang.Thread.run(Thread.java:748)
>>
>>
>>

Reply via email to