Re: Ignite cache with custom key : key not found

2024-07-31 Thread Igor Sapego
Well, the quick work around would be to add at least one named field to the
object.
Meanwhile, we'll try to figure out the right way to fix it without breaking
backward compatibility.

Best Regards,
Igor


On Wed, Jul 31, 2024 at 10:46 AM Louis C  wrote:

> Hello,
>
> Thanks for your answers. Igor, indeed I only use the raw reader/writer to
> serialize my object. It indeed seems like the Java client thinks there is a
> schema, even if this is fully raw.
>
> Pavel, find attached a repro code. There are the C++, Java and the conf I
> used.
> The C++ client first puts a value, then gets it. Then it uses a Java task
> (TestTask) to add a particular value on the same key in the cache. When we
> get back this value, this is still the initial value.
> Then the C++ client calls the "ListCountersTask" that list all the keys in
> the cache. As we can see there are 2 keys in the cache, that deserialize to
> the same object, but have different binary representation.
> See the capture:
> Hope you'll manage to run the example.
>
> Regards
> Louis
> --
> *De :* Pavel Tupitsyn 
> *Envoyé :* mardi 30 juillet 2024 11:16
> *À :* user@ignite.apache.org 
> *Objet :* Re: Ignite cache with custom key : key not found
>
> Louis, we need to see the code to help you - could you please share it,
> both Java and C++ parts? Ideally a reproducer that we can run.
>
> On Tue, Jul 30, 2024 at 11:59 AM Igor Sapego  wrote:
>
> What I see from the object is that it's fully raw, meaning, all the fields
> written without names. Is that correct?
>
> In this case, there is no schema on C++ side, because there are no named
> fields and schema is not needed.
> Java client writes schemaInitialId() in this case, which is
> FNV1_OFFSET_BASIS(0x811C9DC5).
>
> Looks like a bug in Java client to me. Pavel, what do you think?
>
> Best Regards,
> Igor
>
>
> On Tue, Jul 30, 2024 at 10:03 AM Louis C  wrote:
>
> Sorry to up this subject, but I have not been able to find a
> solution/reason for this problem.
> Does anyone have an idea ?
>
> Thanks,
>
> Louis C.
> --
> *De :* Louis C 
> *Envoyé :* lundi 22 juillet 2024 17:06
> *À :* user@ignite.apache.org 
> *Objet :* RE: Ignite cache with custom key : key not found
>
> Hello,
>
> Thanks for your answers.
>
> As for the "compactFooter" I already set it to "false" in the xml config
> of the server. For the client, it is the C++ thin client and in the
> object"IgniteClientConfiguration" I can not do it, it seems. I believe
> there is no need to set this parameter for the C++ thin client.
>
> It will be quite hard to extract a reproducible example, but I might do it
> if necessary.
> In the meantime I managed to extract the binary representartion of the 2
> differents keys (in hexadecimal) :
> Key from C++ thin client :
> 67 01 05 00 91 D3 05 6C 87 E6 CF 1E 26 00 00 00 00 00 00 00 18 00 00 00 05
> 00 00 00 0C 05 00 00 00 32 32 32 32 32
> Key from Java :
> 67 01 05 00 91 D3 05 6C 87 E6 CF 1E 26 00 00 00 C5 9D 1C 81 18 00 00 00 05
> 00 00 00 0C 05 00 00 00 32 32 32 32 32
>
> As we can see, the difference is the 4 bytes in position 17 to 20,
> corresponding, if we follow
> https://cwiki.apache.org/confluence/display/IGNITE/Binary%20object%20format to
> the "Schema Id" which is a "has of the object fields".
> In case of C++ thin client it is "00 00 00 00", and "C5 9D 1C 81".
> The bytes in position 3 to 4 are " 05 00" which seems to indicate user
> type + raw data, but indeed there is not the flag "compact footer" (0x20).
> So it seems to be OK.
>
> I do not know if I said it but I add keys with a CacheEntryProcessor on
> the java side of things.
> Anyone has an idea ?
>
> Best regards,
> Louis C.
>
> --
> *De :* Николай Ижиков  de la part de Nikolay
> Izhikov 
> *Envoyé :* lundi 22 juillet 2024 10:33
> *À :* user@ignite.apache.org 
> *Objet :* Re: Ignite cache with custom key : key not found
>
> Hello.
>
> It common issue with the thin client.
> Please, set same value of BinaryConfiguration#compactFooter explicitly to
> false both on the server side and client side.
>
> On 22 Jul 2024, at 10:32, Pavel Tupitsyn  wrote:
>
> Hello, could you please attach a reproducer?
>
> This might have to do with type names / ids mismatch, but hard to tell
> without the code.
>
> On Fri, Jul 19, 2024 at 7:39 PM Louis C  wrote:
>
> Hello,
>
> I have a strange problem for which I can't find the reason.
>
> I made a cache (key/value cache) with a custom key type that is c

Re: Ignite cache with custom key : key not found

2024-07-30 Thread Igor Sapego
What I see from the object is that it's fully raw, meaning, all the fields
written without names. Is that correct?

In this case, there is no schema on C++ side, because there are no named
fields and schema is not needed.
Java client writes schemaInitialId() in this case, which is
FNV1_OFFSET_BASIS(0x811C9DC5).

Looks like a bug in Java client to me. Pavel, what do you think?

Best Regards,
Igor


On Tue, Jul 30, 2024 at 10:03 AM Louis C  wrote:

> Sorry to up this subject, but I have not been able to find a
> solution/reason for this problem.
> Does anyone have an idea ?
>
> Thanks,
>
> Louis C.
> --
> *De :* Louis C 
> *Envoyé :* lundi 22 juillet 2024 17:06
> *À :* user@ignite.apache.org 
> *Objet :* RE: Ignite cache with custom key : key not found
>
> Hello,
>
> Thanks for your answers.
>
> As for the "compactFooter" I already set it to "false" in the xml config
> of the server. For the client, it is the C++ thin client and in the
> object"IgniteClientConfiguration" I can not do it, it seems. I believe
> there is no need to set this parameter for the C++ thin client.
>
> It will be quite hard to extract a reproducible example, but I might do it
> if necessary.
> In the meantime I managed to extract the binary representartion of the 2
> differents keys (in hexadecimal) :
> Key from C++ thin client :
> 67 01 05 00 91 D3 05 6C 87 E6 CF 1E 26 00 00 00 00 00 00 00 18 00 00 00 05
> 00 00 00 0C 05 00 00 00 32 32 32 32 32
> Key from Java :
> 67 01 05 00 91 D3 05 6C 87 E6 CF 1E 26 00 00 00 C5 9D 1C 81 18 00 00 00 05
> 00 00 00 0C 05 00 00 00 32 32 32 32 32
>
> As we can see, the difference is the 4 bytes in position 17 to 20,
> corresponding, if we follow
> https://cwiki.apache.org/confluence/display/IGNITE/Binary%20object%20format to
> the "Schema Id" which is a "has of the object fields".
> In case of C++ thin client it is "00 00 00 00", and "C5 9D 1C 81".
> The bytes in position 3 to 4 are " 05 00" which seems to indicate user
> type + raw data, but indeed there is not the flag "compact footer" (0x20).
> So it seems to be OK.
>
> I do not know if I said it but I add keys with a CacheEntryProcessor on
> the java side of things.
> Anyone has an idea ?
>
> Best regards,
> Louis C.
>
> --
> *De :* Николай Ижиков  de la part de Nikolay
> Izhikov 
> *Envoyé :* lundi 22 juillet 2024 10:33
> *À :* user@ignite.apache.org 
> *Objet :* Re: Ignite cache with custom key : key not found
>
> Hello.
>
> It common issue with the thin client.
> Please, set same value of BinaryConfiguration#compactFooter explicitly to
> false both on the server side and client side.
>
> On 22 Jul 2024, at 10:32, Pavel Tupitsyn  wrote:
>
> Hello, could you please attach a reproducer?
>
> This might have to do with type names / ids mismatch, but hard to tell
> without the code.
>
> On Fri, Jul 19, 2024 at 7:39 PM Louis C  wrote:
>
> Hello,
>
> I have a strange problem for which I can't find the reason.
>
> I made a cache (key/value cache) with a custom key type that is called
> "IgniteBinaryData".
>
> I have a C++ thin client that calls the server and execute a Java
> ComputeTaskAdapter that I made (let's call it
> "Task1").
> This Task1 writes data in the cache with the custom key type
> "IgniteBinaryData".
>
> But the issue is that when I request the same cache from the C++ thin
> client, the key is not found.
>
> What is strange is that I can then add the key with a "Put" from the C++,
> and when I look at the deserialized keys in the java code, there does not
> seem to be any difference between the 2 "different" keys, which are both
> present in the cache.
>
> What I saw is that when I do a "Get" from the C++, the key is not
> deserialized (Ignite looks only at the serialized data of the keys).
>
> So I think there might be a difference in the serialization of the key
> between the Java code and the C++, but not visible when deserialized.
>
> But looking at all the entries in the cache with an iterator, I found no
> differences. I tried using the".withKeepBinary();" method to access the
> keys without deserialization, but I can't find a way to get the "bytes[]"
> corresponding to the key from the BinaryObject.
>
> So, my question would be : how to get the "bytes[]" corresponding to a
> custom key ?
> And also, is there a known issue that could arise when doing this ? I
> carefully followed
> https://ignite.apache.org/docs/latest/cpp-specific/cpp-platform-interoperability
>  and
> I have no problem of deserialization...
>
> Best regards,
>
> Louis C.
>
>
>


Re: Question about REST/C++ client

2024-02-13 Thread Igor Sapego
1. There is no such API. Seems like a weird error in documentation. We will
fix it. If you want to make 50 gets in parallel, I think it's better to run
50 clients with the current API. You can use the same client too, but it
may be slower, depending on how many nodes you have in a cluster.
2. What do you mean by increments? Do you mean getting value, modifying it
and putting it back?
3. Atomics are faster in most cases (ReplaceIfEquals). Yes, there is a real
overhead for transactions, though how big it is depends on the transaction
isolation level.

Best Regards,
Igor


On Thu, Feb 8, 2024 at 5:05 PM Louis C  wrote:

>
> Hello,
>
> I am trying to use/test Apache Ignite for a particular use case. For
> background reference, my use case of Ignite is to do 100Ks (to begin with)
> of "Gets" and of "increments" of values that will be stored in probably
> multiple caches in Apache Ignite.
> I read the Ignite documentation, but I couldn't figure out things in the
> C++ API side.
>
>
>1. I have read in the documentation
>
> 
>
> that
>there is a "GetAsync" method in C++ client. But I could not find it in the
>code. Is it a deprecated API ? If so, let's imagine I want to do multiple
>calls in parallel (let's say 50 for instance), how can I achieve this ? Can
>I just call multiple "Get"s in parallel in my threads without any problem ?
>Must I create a client for each thread ? There does not seem to be anything
>related to thread safety of these methods in the doc...
>2. Does doing 100K "increments" of values in a cache seem achievable
>on an Ignite cluster of a single node (let's say the CPU is a last gen i7
>with 8 physical cores)? The problem that I have is that I have very good
>performances (+100K "gets") using the batch methods of the Rest API, but no
>batch method exist for "increments", and the overhead of each http call
>cripples the performance to a few 1000s/s. What would be the "best" way of
>achieving this (preferably in C++ or Rest API, but I am open to Java too )?
>3. Related but a bit different : if I want to add a value to an
>existing one in the store (doing an "increment"), would it be (in general)
>faster to do it using the "transaction" mode or to use the
>"ReplaceIfEquals" methods (in general I do not update the same values in
>the same time) ? Is there a real overhead for transactions ?
>
>
> Thanks in advance
>
> Louis
>


Re: pyignite - performance issue

2023-03-14 Thread Igor Sapego
Unfortunately, we do not have Mac agents, so we can not detect when
compilation on Mac OS is broken, so yeah...

Best Regards,
Igor


On Tue, Mar 14, 2023 at 2:48 PM Ivan Daschinsky  wrote:

> An ignite odbc driver works well on linux and windows OSes, but it seems
> that it is impossible to compile it on Mac OS.
>
> вт, 14 мар. 2023 г. в 14:47, Ivan Daschinsky :
>
>> Hi, Dren!
>>
>> Unfortunatelly, pyignite doesn't have an efficient native serialization
>> library, whereas psycopg2 has (it is a thin wrapper around libpq).
>>
>> I would suggest two options:
>> 1. Reduce a default batch size like this : `client.sql("SELECT * FROM
>> TABLE", page_size=10)`. Default 1024 seems too big and parsing of such a
>> big response seems to be really slow.
>> 2. Use ignite odbc driver and pyodbc over it. Both of them work pretty
>> well.
>>
>> вт, 14 мар. 2023 г. в 14:10, Dren Butković :
>>
>>>
>>> Ignite and py client versions:
>>>
>>> - Apache Ignite 2.13.0
>>> - pyignite 0.5.2
>>>
>>> On Tue, Mar 14, 2023 at 11:46 AM Zhenya Stanilovsky via user <
>>> user@ignite.apache.org> wrote:
>>>
 Hi, plz append ignite and py client versions.


 Hi,

 I made a speed comparison of retrieving data from Apache Ignite using
 several methods. All records are in one table, I did not use any WHERE
 condition, only a SELECT * FROM TABLE XYZ LIMIT 2.

 Test results are:
 Apache Ignite

- Apache Ignite REST API - 0.52 seconds
- JDBC - 4 seconds
- Python pyignite - 40 seconds !!!

 pseudocode in Python using pyignite:

 client = Client(username="ignite", password="pass", use_ssl=False)
 client.connect('localhost', 10800)

 cursor=client.sql('SELECT * FROM TABLE_XYZ LIMIT 2')for row in cursor:
 pass

 After that I made a speed comparison of retrieving data from PostgreSQL
 using JDBC and psycopg2 Python package. SQL select is same, SELECT * FROM
 TABLE XYZ LIMIT 2
 PostgreSQL

- JDBC - 3 seconds
- Python psycopg2 using fetchall - 3 seconds
- Python psycopg2 using fetchone - 4 seconds

 pseudocode in Python using psycopg2:

 import psycopg2

 conn = psycopg2.connect(database=DB_NAME,
 user=DB_USER,
 password=DB_PASS,
 host=DB_HOST,
 port=DB_PORT)

 cur = conn.cursor()
 cur.execute("SELECT * FROM TABLE_XYZ LIMIT 2")
 rows = cur.fetchall()for data in rows:
 pass

 I can conclude that the pyignite implementation has much worse
 performance compared to psycopg2 tests. The performance difference on
 PostgreSQL between Java JDBC and Python psycopg2 is negligible.

 The performance difference on Apache Ignite between Java JDBC and
 Python pyignite is very big.

 Please if someone can comment on the tests, did I do something wrong or
 are these results expected? How can such large differences in execution
 times be explained? Do you have any suggestions to get better results using
 pyignite?

 Thank you






>>>
>>
>> --
>> Sincerely yours, Ivan Daschinskiy
>>
>
>
> --
> Sincerely yours, Ivan Daschinskiy
>


Re: IGNITE ODBC and ADODB Recordset problem fetching data

2022-11-21 Thread Igor Sapego
Guido,

Thank you for sharing logs.

It seems like we do not support a bunch of connection and statement
attributes
which are used by ADO. I filed a ticket to fix this: [1]

[1] - https://issues.apache.org/jira/browse/IGNITE-18210

Best Regards,
Igor


On Mon, Nov 21, 2022 at 4:12 PM Entwicklung <
entwickl...@giftinfo.uni-mainz.de> wrote:

> Hi Igor,
>
> sorry i forgot the log-files from odbc-admin.
>
> Best Regards
>
> Guido
>
>
>
> *Von:* Entwicklung 
> *Gesendet:* Montag, 21. November 2022 11:47
> *An:* user@ignite.apache.org
> *Betreff:* AW: IGNITE ODBC and ADODB Recordset problem fetching data
>
>
>
> Hi Igor,
>
> here are the odbc trace files. I tried with CursorLocation  client and
> server.
>
> Hope it helps.
>
> Thank you in advance.
>
>
>
> Best Regards
>
> Guido
>
>
>
> *Von:* Igor Sapego 
> *Gesendet:* Samstag, 19. November 2022 08:44
> *An:* user@ignite.apache.org
> *Betreff:* Re: IGNITE ODBC and ADODB Recordset problem fetching data
>
>
>
> Hi,
>
>
>
> Can you please enable ODBC tracing as described for example at [1]
>
> and share a trace file? It is not clear from the error message what the
>
> problem is.
>
>
>
> [1] -
> https://learn.microsoft.com/en-us/sql/odbc/admin/setting-tracing-options
>
>
> Best Regards,
>
> Igor
>
>
>
>
>
> On Tue, Nov 15, 2022 at 2:29 PM Entwicklung <
> entwickl...@giftinfo.uni-mainz.de> wrote:
>
> Hello
>
> i try to fetch records from Apache Ignite inmemory database via Microsoft
> Access 2016 32-Bit and Apache Ignite 32-Bit ODBC-driver with default
> settings. OS is Windows 10. Import as a linked table does not work so i
> tried via ADODB-Class. Connection.Open and Recordset.Open works and i can
> see all columns (ID and NAME) of sample table CITY in the Recordset. But
> when i try to fetch the first record with MoveFirst or MoveNext, i get the
> error 'specified attribute is not supported'. I tried the same with
> CursorLocation=adUseClient and the error message changes to 'wrong
> parameter'. Default Provider is MSDASQL.1. Is this the correct Provider?
> Any idea how to fetch records with ADODB?
>
> Code
>
> Public Sub QueryIgnite()
>
> Dim ADOrs As ADODB.Recordset
>
> Dim ADOcon As ADODB.Connection
>
>
>
> Set ADOcon = New ADODB.Connection
>
> ADOcon.ConnectionString = "DSN=Apache-Ignite-DSN"
>
> 'ADOcon.CursorLocation = adUseClient
>
> ADOcon.Open
>
>
>
> Set ADOrs = New ADODB.Recordset
>
> ADOrs.Open "select * from city", ADOcon,
> adOpenForwardOnly
>
> ADOrs.MoveNext
>
> Debug.Print ADOrs.Fields("NAME")
>
> ADOrs.Close
>
> ADOcon.Close
>
>
>
> End Sub
>
> Thank you in advance.
>
> Regards.
>
> Guido Clesius
>
>
>
>


Re: IGNITE ODBC and ADODB Recordset problem fetching data

2022-11-18 Thread Igor Sapego
Hi,

Can you please enable ODBC tracing as described for example at [1]
and share a trace file? It is not clear from the error message what the
problem is.

[1] -
https://learn.microsoft.com/en-us/sql/odbc/admin/setting-tracing-options

Best Regards,
Igor


On Tue, Nov 15, 2022 at 2:29 PM Entwicklung <
entwickl...@giftinfo.uni-mainz.de> wrote:

> Hello
>
> i try to fetch records from Apache Ignite inmemory database via Microsoft
> Access 2016 32-Bit and Apache Ignite 32-Bit ODBC-driver with default
> settings. OS is Windows 10. Import as a linked table does not work so i
> tried via ADODB-Class. Connection.Open and Recordset.Open works and i can
> see all columns (ID and NAME) of sample table CITY in the Recordset. But
> when i try to fetch the first record with MoveFirst or MoveNext, i get the
> error 'specified attribute is not supported'. I tried the same with
> CursorLocation=adUseClient and the error message changes to 'wrong
> parameter'. Default Provider is MSDASQL.1. Is this the correct Provider?
> Any idea how to fetch records with ADODB?
>
> Code
>
> Public Sub QueryIgnite()
>
> Dim ADOrs As ADODB.Recordset
>
> Dim ADOcon As ADODB.Connection
>
>
>
> Set ADOcon = New ADODB.Connection
>
> ADOcon.ConnectionString = "DSN=Apache-Ignite-DSN"
>
> 'ADOcon.CursorLocation = adUseClient
>
> ADOcon.Open
>
>
>
> Set ADOrs = New ADODB.Recordset
>
> ADOrs.Open "select * from city", ADOcon,
> adOpenForwardOnly
>
> ADOrs.MoveNext
>
> Debug.Print ADOrs.Fields("NAME")
>
> ADOrs.Close
>
> ADOcon.Close
>
>
>
> End Sub
>
> Thank you in advance.
>
> Regards.
>
> Guido Clesius
>
>
>


Re: [ANNOUNCE] Apache IGNITE python thin client (pyignite) 0.6.0 have been released

2022-11-17 Thread Igor Sapego
Great work

Best Regards,
Igor


On Wed, Nov 16, 2022 at 1:50 PM Ivan Daschinsky 
wrote:

> The Apache Ignite Community is pleased to announce the release of
> Apache IGNITE python thin client (pyignite) 0.6.0.
>
> This new release is mostly the maintenance one. However, there are some
> new important features and fixes:
>
> 1. Fixed non-intuitive automatically setting of flag use_ssl when the
> authentication is enabled
> 2. Added timeout support for cache operations in the async client.
> 3. Fixed incorrect result setting of already completed futures in async
> connection implementation
>
> For the full list of changes, you can look at the RELEASE_NOTES:
> https://ignite.apache.org/releases/pyignite/0.6.0/release_notes.html
>
> You can install this version using pip
> >> pip install pyignite=0.6.0
>
> Alternatively, you can download sources and binary packages (wheels) from
> here:
> https://dist.apache.org/repos/dist/release/ignite/pyignite/0.6.0/
>
> Please let us know if you have any problems
> https://ignite.apache.org/community/resources.html#ask
>
> Regards,
> Ivan Daschinsky on behalf of the Apache Ignite community.
>


Re: Thin/Thick client, caching

2022-08-30 Thread Igor Sapego
Hi,

Sorry for the late reply, I somehow missed your message.

Yes, thick client starts a JVM with the whole Ignite inside, while thin
client does not and does not depend on JDK.
Actually, thick client is not only a client but can also be a C++ server
node.

You are right, NearCache is not available in C++ thin client.

It looks like thick client may be the most suitable solution for your case.

Best Regards,
Igor


On Mon, Jul 25, 2022 at 4:07 PM Paul McCracken 
wrote:

> Hello everyone,
>
> I am looking at building a C++ application (running in a docker image)
> that is also an Ignite client.
>
> I am looking at both thin and thick clients and have been doing some
> performance testing on them.
>
> During my testing, I have found that the thin client can be added to a
> docker image without including the whole JDK (just the handful of Ignite
> libraries, libjvm and a few others), whereas the thick client needs the
> full JDK. Is that the case?
>
> I am also looking at using the NearCache, but it looks like it is only
> available with the thick client, and not the thin client. Again, is this
> the case?
>
> Has anyone used another caching system (redis, etc) to improve performance
> of the thin client (ideally in a docker container)? Our application will
> most of the time be used for about 25% write and 75% read, with hopefully
> enough ram to store over half of what we need in cache. We will have some
> use cases that are mostly read, but won't have anywhere close enough ram to
> cache it all (but understand that performance will obviously suffer).
>
> Thanks,
> Paul
>


Re: Nodejs ThinClient and compute

2022-04-04 Thread Igor Sapego
Hello,

No, it's not possible right now.

Best Regards,
Igor


On Fri, Feb 18, 2022 at 1:46 PM F.D.  wrote:

> Hi,
> is it possible to launch a "distributed compute" from a thin client of
> node.js? If not, do you have a workaround about it?
>
> Thanks,
>  F.D.
>
>


Re: Cluster endpoints [2.10 c++ thin client]

2021-05-12 Thread Igor Sapego
This is possible because when you add endpoints to client's configuration
it will use all of them when sending requests (it will send them to random
nodes though). So when you send a large batches of values there won't be
a single node bottleneck, when a single node deals with a great number
of thin client requests.

Best Regards,
Igor


On Sun, May 2, 2021 at 11:40 AM jjimeno  wrote:

> Hi all,
>
> After taking a look to the c++ thin client source code
> (cache_client_impl.cpp) it seems partition awareness is only taken into
> account for single requests (Get/Put), but neither for batch
> (GetAll/PutAll)
> nor transactions.
>
> But in our tests, adding endpoints to Ignite Client configuration makes a
> huge difference in terms of performance in batch requests for transactional
> caches... could anyone put some light on how it's possible?
>
> Thanks in advance for your help.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Buffer Overflow on ARM with persistency enabled

2021-04-21 Thread Igor Sapego
Hi,

I'm pretty much sure it happens because Ignite is quite demanding on RAM.
How much memory is available on your machine?

Also, is there any kind of stack trace to share?

Best Regards,
Igor


On Wed, Apr 21, 2021 at 2:46 PM rakshita04 
wrote:

> Hi Team,
>
> We are using ignite on our C++ application over 32-bit ARM linux machine.
> Our application is closing abruptly after certain number of entries in
> Database(4400 entries) and application is being terminated with "Buffer
> Overflow" error.
> There is no other information in ignite logs or system logs.
> No dump file is also being generated.
> When we disable the persistency there is no abrupt shutdown.
> We have also observed that while persistency is enabled and write
> operations
> are being performed on DB, there are too many files opened in /proc/fd for
> ignite and when the write operation is stopped also the number of files
> open
> is not decreasing.
> Ideally these files should get closed by ignite after a certain time right?
> Do you have any idea why it is happening ?
> Also any help on "buffer overflow" issue?
>
> regards,
> Rakshita Chaudhary
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Re[4]: Run sql query on key-value cache

2021-03-17 Thread Igor Sapego
There is our DDL documentation, which describes in detail how one can create
indexes on existing table [1]. It can be used with both C++ using
SqlFieldsQuery
and ODBC.

Now regarding benefits of ODBC over C++ - there are definitely memory
benefits
if you are comparing ODBC and thick C++ client as thick client starts JVM
internally.
On the other hand if you compare thin C++ client and ODBC then I don't
think there
are any significant differences in performance or memory consumption.

Using C++ you are getting a more convenient API (e.g. cache API,
transactions API)
and ability to work with objects. Also when you use cache operations in C++
thin client
it may be faster than inserting a value with ODBC as C++ thin client is
affinity aware
and in many cases will send request to primary node, which is not true for
ODBC.

There are many other small or not so small differences between those 3
options, but
this is just too much of an information to describe it all in a single
email. So just ask
if you are interested in something particular and we'll try to answer.

[1] - https://ignite.apache.org/docs/latest/sql-reference/ddl#create-index

Best Regards,
Igor


On Tue, Mar 16, 2021 at 2:30 PM rakshita04 
wrote:

> Hi team,
>
> I believe the example you mentioned above is using C++ -
>
> https://github.com/apache/ignite/blob/f37ec9eece4db627f2d5190e589f0522e445a251/modules/platforms/cpp/examples/query-example/src/query_example.cpp
>
> is there any performance or memory benefit is we use odbc rather than C++
> API?
> We are using C++ put/get APIs to write/read data on cache.
> Is it okay to use C++ APIs to perform sql query, similar way? or using odbc
> client is more beneficial?
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

2021-03-05 Thread Igor Sapego
Guys, I just want to notify you that the issue is fixed and is included in
Ignite-2.10

Best Regards,
Igor


On Thu, Feb 18, 2021 at 3:41 AM 18624049226 <18624049...@163.com> wrote:

> Hello Ilya,
>
> https://issues.apache.org/jira/browse/IGNITE-14204
> 在 2021/2/18 上午12:14, Ilya Kasnacheev 写道:
>
> Hello!
>
> I confirm that I see this issue. Can you please file a ticket against
> IGNITE JIRA?
>
> Thanks,
> --
> Ilya Kasnacheev
>
>
> вт, 16 февр. 2021 г. в 11:58, jjimeno :
>
>> Hello!
>>
>> In fact, it's very simple:
>>
>> int main()
>>{
>>IgniteClientConfiguration cfg;
>>
>>cfg.SetEndPoints("10.250.0.10, 10.250.0.4");
>>
>>try
>>   {
>>   IgniteClient client = IgniteClient::Start(cfg);
>>
>>   CacheClient cache =
>> client.GetOrCreateCache> int32_t>("vds");
>>
>>   ClientTransactions transactions = client.ClientTransactions();
>>
>>   ClientTransaction tx = transactions.TxStart(PESSIMISTIC,
>> READ_COMMITTED);
>>
>>   cache.Put(1, 1);
>>
>>   tx.Commit();
>>   }
>>catch (IgniteError & err)
>>   {
>>   std::cout << "An error occurred: " << err.GetText() << std::endl;
>>
>>   return err.GetCode();
>>   }
>>
>>return 0;
>>}
>>
>> Not always, but sometimes, I get an "stack overflow" error, which makes me
>> think about a concurrence problem in the code.
>>
>> Cluster configuration:
>> 
>>
>>
>> Error:
>> 
>>
>> Just in case, the C++ version I'm currently using is:
>> 685c1b70ca (HEAD -> master, origin/master, origin/HEAD) IGNITE-13865
>> Support
>> DateTime as a key or value in .NET and Java (#8580)
>>
>> Le me know if you need anything else
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>


Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

2021-02-04 Thread Igor Sapego
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:
>> 
>> 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";>
>> > "org.apache.ignite.configuration.IgniteConfiguration">
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>
>> 2.test code are as follows:
>>
>> Usually only the first few loop operations may throw an exception, and
>> the subsequent operations are normal.
>> #include 
>> #include 
>> #include 
>> #include 
>> #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 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)
>>
>>
>>


Re: [2.10 branch]cpp thin client transaction :Transaction with id 1 not found.

2021-02-03 Thread 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:
> 
> http://www.springframework.org/schema/beans";
> 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> 
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd";>
>  "org.apache.ignite.configuration.IgniteConfiguration">
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>
> 2.test code are as follows:
>
> Usually only the first few loop operations may throw an exception, and the
> subsequent operations are normal.
> #include 
> #include 
> #include 
> #include 
> #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 cache = client.GetOrCreateCache 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)
>
>
>


Re: Multithread transactions in a C++ Thin Client

2021-01-14 Thread Igor Sapego
I mean, mutex should be taken for the entire transaction of course.

Best Regards,
Igor


On Thu, Jan 14, 2021 at 7:49 PM Igor Sapego  wrote:

> That's true. We need to implement async reading from client socket to
> handle cases like this one properly. Currently as a workaround I can
> only suggest guarding the whole client with mutex or create separate
> clients for threads that do transactional operations.
>
> I filed a ticket for the issue [1]. Thanks for reporting.
>
> [1] - https://issues.apache.org/jira/browse/IGNITE-13997
>
> Best Regards,
> Igor
>
>
> On Thu, Jan 14, 2021 at 7:32 PM jjimeno  wrote:
>
>> Hello all,
>>
>> We're developing a multithread application using one C++ Thin Client to
>> connect to a cluster with a single Server Node.  The C++ Thin Client
>> version
>> is "master" from January 21.
>>
>> We have implemented a "lock-and-update" system based on the "GetAndPut"
>> function and PESSIMISTIC+READ_COMMITTED transactions. The idea is to lock
>> a
>> set of cache entries, update them and commit them atomically.
>>
>> In our tests we have detected a deadlock when following piece of code is
>> executed for more than one thread on our application:
>>
>> ...
>>
>> ClientTransactions transactions = client.ClientTransactions();
>> ClientTransaction tx = transactions.TxStart(PESSIMISTIC, READ_COMMITTED);
>>
>> // This call should atomically get the current value for "key" and put
>> "value" instead, locking the "key" cache entry at the same time
>> auto oldValue = cache.GetAndPut(key, value);
>>
>> // Only the thread able of locking "key" should reach this code. Others
>> have
>> to wait for tx.Commit() to complete
>> cache.Put (key, newValue);
>>
>> // After this call, other thread waiting in GetAndPut for "key" to be
>> released should be able of continuing
>> tx.Commit ();
>>
>> ...
>>
>> The thread reaching "cache.Put (key, newValue);" call, gets blocked in
>> there, concretely in the lockGuard object created at the beginning of
>> DataChannel::InternalSyncMessage function (data_channel.cpp:108).  After
>> debugging, we realized that this lockGuard is owned by a different thread,
>> which is currently waiting on socket while executing GetAndPut function.
>> According to this, my guess is that data routing for C++ Thin Clients is
>> not
>> multithread friendly.
>>
>> I did a test creating a C++ Thin Client for each different thread and the
>> problem disappeared, but this is something I would like to avoid since
>> threads are created and destroyed on the fly.
>>
>> So, my questions is: do I have to create a C++ thin client for each
>> different thread or there is any workaround?
>>
>> Thanks in advance!
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>


Re: Multithread transactions in a C++ Thin Client

2021-01-14 Thread Igor Sapego
That's true. We need to implement async reading from client socket to
handle cases like this one properly. Currently as a workaround I can
only suggest guarding the whole client with mutex or create separate
clients for threads that do transactional operations.

I filed a ticket for the issue [1]. Thanks for reporting.

[1] - https://issues.apache.org/jira/browse/IGNITE-13997

Best Regards,
Igor


On Thu, Jan 14, 2021 at 7:32 PM jjimeno  wrote:

> Hello all,
>
> We're developing a multithread application using one C++ Thin Client to
> connect to a cluster with a single Server Node.  The C++ Thin Client
> version
> is "master" from January 21.
>
> We have implemented a "lock-and-update" system based on the "GetAndPut"
> function and PESSIMISTIC+READ_COMMITTED transactions. The idea is to lock a
> set of cache entries, update them and commit them atomically.
>
> In our tests we have detected a deadlock when following piece of code is
> executed for more than one thread on our application:
>
> ...
>
> ClientTransactions transactions = client.ClientTransactions();
> ClientTransaction tx = transactions.TxStart(PESSIMISTIC, READ_COMMITTED);
>
> // This call should atomically get the current value for "key" and put
> "value" instead, locking the "key" cache entry at the same time
> auto oldValue = cache.GetAndPut(key, value);
>
> // Only the thread able of locking "key" should reach this code. Others
> have
> to wait for tx.Commit() to complete
> cache.Put (key, newValue);
>
> // After this call, other thread waiting in GetAndPut for "key" to be
> released should be able of continuing
> tx.Commit ();
>
> ...
>
> The thread reaching "cache.Put (key, newValue);" call, gets blocked in
> there, concretely in the lockGuard object created at the beginning of
> DataChannel::InternalSyncMessage function (data_channel.cpp:108).  After
> debugging, we realized that this lockGuard is owned by a different thread,
> which is currently waiting on socket while executing GetAndPut function.
> According to this, my guess is that data routing for C++ Thin Clients is
> not
> multithread friendly.
>
> I did a test creating a C++ Thin Client for each different thread and the
> problem disappeared, but this is something I would like to avoid since
> threads are created and destroyed on the fly.
>
> So, my questions is: do I have to create a C++ thin client for each
> different thread or there is any workaround?
>
> Thanks in advance!
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Unixodbc currently not working...

2020-12-09 Thread Igor Sapego
Hi, Wolfgang,

I just wanted to notify that I fixed the issue with ODBC driver returning
the wrong
ODBC version and some other issues: [1]

[1] - https://github.com/apache/ignite/pull/8528

Best Regards,
Igor


On Mon, Nov 30, 2020 at 6:20 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> There may be some issues with ODBC driver but it is generally working and
> stable. I'm not sure why you would need the ODBC_V3 specifically?
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> пн, 30 нояб. 2020 г. в 14:48, Wolfgang Meyerle <
> wolfgang.meye...@googlemail.com>:
>
>> Quite simple. I'd like to execute SQL queries.
>>
>> As the thin client c++ interface which I'd like to use is not capable in
>> executing SQL queries I have to use unixodbc as a temporary workaround.
>>
>> There are some other issues that popped up in the unixodbc driver from
>> Ignite.
>>
>> Boolean and Double values are currently causing issues.
>> Whenever I have a table column storing the value 12.3456 for example I'm
>> getting 123456 back by using the interface.
>>
>> Boolean values are also an issue as the column table data type doesn't
>> seem to be defined. I'm getting "-7" back which is definitely wrong ;-)
>>
>> Regards,
>>
>> Wolfgang
>>
>>
>> Am 30.11.20 um 10:41 AM schrieb Ilya Kasnacheev:
>> > Hello!
>> >
>> > Maybe the driver is not actually capable of ODBC_V3? Why do you need it?
>> >
>> > Regards,
>> > --
>> > Ilya Kasnacheev
>> >
>> >
>> > пт, 27 нояб. 2020 г. в 19:15, Wolfgang Meyerle
>> > > wolfgang.meye...@googlemail.com>>:
>> >
>> > So,
>> >
>> > I uploaded a tiny demo project for my two issues:
>> >
>> > Issue1 states that the odbc interface is reporting it's not capable
>> of
>> > the ODBC_V3 standard.
>> >
>> > Issue2 is the one I described where I get linking problems despite
>> that
>> > the even if you uncomment #LIBS += -lodbcinst in the pro file of
>> the QT
>> > project.
>> >
>> > You can find everything here:
>> > https://filebin.net/5fclxod62xi36gbb
>> > <https://filebin.net/5fclxod62xi36gbb>
>> >
>> > Regards,
>> >
>> > Wolfgang
>> >
>> > Am 27.11.20 um 4:21 PM schrieb Ilya Kasnacheev:
>> >  > Hello!
>> >  >
>> >  > The workaround for third-party tools is probably
>> >  > LD_PRELOAD=/path/to/libodbcinst.so isql -foo -bar
>> >  >
>> >  > Regards,
>> >  > --
>> >  > Ilya Kasnacheev
>> >  >
>> >  >
>> >  > пт, 27 нояб. 2020 г. в 18:18, Igor Sapego > > <mailto:isap...@apache.org>
>> >  > <mailto:isap...@apache.org <mailto:isap...@apache.org>>>:
>> >  >
>> >  > Hi,
>> >  >
>> >  > Starting from your last question, it's Version3.
>> >  >
>> >  > Now to the issue you are referring to. It definitely looks
>> like a
>> >  > bug to me. It's weird
>> >  > that no one has found it earlier. Looks like no one
>> > uses SQLConnect?
>> >  > It is weird that
>> >  > We do not have a test for that either. Anyway I filed a
>> > ticket and
>> >  > going to take a look
>> >  > at it soon: [1]
>> >  >
>> >  > As a workaround you can try a solution suggested by Ilya. I
>> > can not
>> >  > provide a sound
>> >  > workaround for third-party tools like isql though.
>> >  >
>> >  > [1] - https://issues.apache.org/jira/browse/IGNITE-13771
>> > <https://issues.apache.org/jira/browse/IGNITE-13771>
>> >  > <https://issues.apache.org/jira/browse/IGNITE-13771
>> > <https://issues.apache.org/jira/browse/IGNITE-13771>>
>> >  >
>> >  > Best Regards,
>> >  > Igor
>> >  >
>> >  >
>> >  > On Fri, Nov 27, 2020 at 5:43 PM Ilya Kasnacheev
>> >  > mailto:ilya.kasnach...@gmail.com
>> >
>> > <mailto:ilya.kasnach...@gmail.com
>> > <mailto:ilya.kasnach..

Re: cpp unixodbc connection

2020-11-27 Thread Igor Sapego
I've tried to answer your question in your following email.
Are there any other issues?

Best Regards,
Igor


On Fri, Nov 27, 2020 at 12:50 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> Can you please provide a complete reproducer, with main() and all that
> stuff?
>
> You can check out the modules/platforms/cpp/odbc-test for working examples.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> чт, 26 нояб. 2020 г. в 21:48, Wolfgang Meyerle <
> wolfgang.meye...@googlemail.com>:
>
>> The code I'm using at the moment is here...
>> https://filebin.ca/5ihkjcOx8nid
>>
>>
>> Am 26.11.20 um 7:41 PM schrieb Wolfgang Meyerle:
>> > Hi,
>> >
>> > I'm now trying to connect to apache ignite via the odbc driver the
>> whole
>> > afternoon and now I'm stuck.
>> >
>> > The compilation and the installation in the platform/cpp directory went
>> > fine. Unixodbc driver was successfully installed according to the
>> readmes.
>> >
>> > I also double checked dependency libraries of the ignite odbc so files
>> > and everything seems to be ok so far.
>> >
>> > When I run isql on the command line I cannot connect to Apache Ignite.
>> >
>> > If I use iusql on the command line with the DSN configured in
>> > /etc/odbc.ini I can perform a connection and can access Ignites
>> database.
>> >
>> > However the cpp code does not work and I have no clue neither the error
>> > message is providing useful hints.
>> >
>> > According to the manual the ignite driver on linux is using unicode and
>> > is not supporting ansii or am I wrong?
>> >
>> > Can anybody provide me a short cpp example how to setup a connection
>> > with cpp using the ODBC driver?
>> >
>> > Regards,
>> >
>> > Wolfgang
>>
>


Re: Unixodbc currently not working...

2020-11-27 Thread Igor Sapego
Hi,

Starting from your last question, it's Version3.

Now to the issue you are referring to. It definitely looks like a bug to
me. It's weird
that no one has found it earlier. Looks like no one uses SQLConnect? It is
weird that
We do not have a test for that either. Anyway I filed a ticket and going to
take a look
at it soon: [1]

As a workaround you can try a solution suggested by Ilya. I can not provide
a sound
workaround for third-party tools like isql though.

[1] - https://issues.apache.org/jira/browse/IGNITE-13771

Best Regards,
Igor


On Fri, Nov 27, 2020 at 5:43 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> You can link your own binary to libodbcinst, in which case the linking
> problem should go away. Can you try that?
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> пт, 27 нояб. 2020 г. в 17:13, Wolfgang Meyerle <
> wolfgang.meye...@googlemail.com>:
>
>> Hi,
>>
>> after spending several hours to get the unixodbc driver up and running I
>> nearly gave up.
>>
>> However together with the author of unixodbc I was able to find out that
>> the current odbc driver in Apache Ignite is not doeing what it's
>> supposed to do.
>>
>> As soon as I execute the command:
>> et = SQLConnect(dbc, (SQLCHAR*)DSN, SQL_NTS, (SQLCHAR*)"", SQL_NTS,
>> (SQLCHAR*)"", SQL_NTS);
>>
>> I get a crash in my program stating that:
>> isql: symbol lookup error: /usr/local/lib/libignite-odbc.so: undefined
>> symbol: SQLGetPrivateProfileString
>>
>> According to the author of unixodbc this is a function which is called
>> to find out where to connect to by opening the /etc/odbc.ini file an
>> looking for the DSN provided by the parameter.
>>
>>
>> I compiled the Apache Ignite odbc connector exactly as stated in the
>> manual. However an ldd on the /usr/local/lib/libignite-odbc.so does not
>> show me a dependency on the odbcinst.so as stated by the author.
>>
>> So it seems that the configure script for the compilation is broken
>> somehow.
>>
>> I installed unixodbc-dev on my ubuntu box so that shouldn't be the
>> problem.
>>
>> Digging down into the cmake script it seems that it also correctly
>> detects the installed unixodbc-dev installation.
>>
>> But the dependency to the odbcinst.so is missing.
>>
>>
>> Hopefully someone can help.
>>
>> In the meantime I'm using the SQLDriverConnect routine which is not
>> dependent on the SQLGetPrivateProfileString. That works but it just a
>> dirty workaround and shouldn't be the final solution.
>>
>> Which ODBC Version is implemented in the code?
>>
>> Version2 or Version3?
>>
>> Reagards,
>>
>> Wolfgang
>>
>>
>>
>>


Re: Crashes when running Apache Ignite as a sever node together with cpp code

2020-11-26 Thread Igor Sapego
Hi,

It does not crash, it is just JVM uses system signals internally, you can
safely
ignore them or just ignore any signals coming from jvm.dll.

Best Regards,
Igor


On Thu, Nov 26, 2020 at 6:15 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> I think there should be some kind of guide on how to debug JVM apps. I
> would start with adding -Xint jvm arg to avoid JIT, which should make work
> easier for both debugger and the VM.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> ср, 25 нояб. 2020 г. в 09:11, Wolfgang Meyerle <
> wolfgang.meye...@googlemail.com>:
>
>> Hi,
>>
>> I tried to run apache ignite as given by example from the website as a
>> server node attached to my cpp program.
>>
>> Basically it works fine but debugging is not possible anymore which is a
>> show stopper. The application crashes everytime when the program is
>> debugged in QT.
>>
>> Any suggestions?
>>
>> Regards,
>>
>> Wolfgang
>>
>


Re: Java VM Parameters setting through cpp api

2020-11-18 Thread Igor Sapego
Yes, it is possible. See [1]

[1] -
https://ignite.apache.org/releases/latest/cppdoc/structignite_1_1IgniteConfiguration.html#ad7f632214a786dfdf8dc6f5824749e8a

Best Regards,
Igor


On Wed, Nov 18, 2020 at 3:18 PM Wolfgang Meyerle <
wolfgang.meye...@googlemail.com> wrote:

> Hi,
>
> Is it possible somehow to define specific Java VM Parameters through the
> cpp interfacte or the xml configuration files.
>
> I'm facing serious sys-stripe timeouts and one recommendation of Ignite
> is to switch to IPv4 only.
>
> Unfortunately this is an Java VM Parameter which I do not seem to have
> influence as soon as I start the Ignite Cpp Server Process via
> Ignite::Ignition::Start
>
> Regards,
>
> Wolfgang
>
>


Re: Fwd: Exceptions in C++ Ignite Thin Client on process exit

2020-08-03 Thread Igor Sapego
Do you keep an IgniteClient instance somewhere as a global/static variable?

If so, this may not be the best idea, just move it somewhere where it will
have a predictable lifetime and where it can be destroyed before main() is
finished.

Best Regards,
Igor


On Tue, Aug 4, 2020 at 2:19 AM Igor Sapego  wrote:

> Dana,
>
> I think it makes sense to add the "Stop" method to the IgniteClient class,
> but currently all connections should terminate successfully once
> all the instances of the class are destructed.
>
> Also, the message does not look like a real problem to me, more like a
> warning. Does anyone have a clue why there is a SEVERE label?
>
> Best Regards,
> Igor
>
>
> On Mon, Jul 27, 2020 at 6:06 PM Dana Milan  wrote:
>
>> Hi,
>>
>> Attached is the beginning of a full log of Ignite on the server (the rest
>> of the log file is repeating the mentioned errors).
>> This node is connected through Zookeeper to another main node.
>> I checked the cache on both nodes with Visor and it seems to be updated
>> with the right content.
>>
>> Thanks and regards!
>>
>>
>>
>> ‫בתאריך יום ב׳, 27 ביולי 2020 ב-17:28 מאת ‪aealexsandrov‬‏ <‪
>> aealexsand...@gmail.com‬‏>:‬
>>
>>> Hi,
>>>
>>> Are you sure that you don't have connectivity problems there? Is it
>>> possible
>>> to share full logs?
>>>
>>> BR,
>>> Andrei
>>>
>>>
>>>
>>> --
>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>
>>


Re: Fwd: Exceptions in C++ Ignite Thin Client on process exit

2020-08-03 Thread Igor Sapego
Dana,

I think it makes sense to add the "Stop" method to the IgniteClient class,
but currently all connections should terminate successfully once
all the instances of the class are destructed.

Also, the message does not look like a real problem to me, more like a
warning. Does anyone have a clue why there is a SEVERE label?

Best Regards,
Igor


On Mon, Jul 27, 2020 at 6:06 PM Dana Milan  wrote:

> Hi,
>
> Attached is the beginning of a full log of Ignite on the server (the rest
> of the log file is repeating the mentioned errors).
> This node is connected through Zookeeper to another main node.
> I checked the cache on both nodes with Visor and it seems to be updated
> with the right content.
>
> Thanks and regards!
>
>
>
> ‫בתאריך יום ב׳, 27 ביולי 2020 ב-17:28 מאת ‪aealexsandrov‬‏ <‪
> aealexsand...@gmail.com‬‏>:‬
>
>> Hi,
>>
>> Are you sure that you don't have connectivity problems there? Is it
>> possible
>> to share full logs?
>>
>> BR,
>> Andrei
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>


Re: Serialize a char array member as part of class serialization into cache - C++ API

2020-08-03 Thread Igor Sapego
Hi Dana,

"char" type is not supported by Ignite as it may have different sign on
different platforms. You can use int8_t if you want to have a byte array,
or WriteString/ReadString if you want it to be a string.

Also, I've re-factored your BinaryType code a little bit so it's more
readable:

template<>
struct ignite::binary::BinaryType : BinaryTypeDefaultAll
{
static void GetTypeName(std::string& name)
{
name = "Pair";
}

static void Write(BinaryWriter& writer, const Pair& obj)
{
BinaryRawWriter rawWriter = writer.RawWriter();

int len = obj._len;
char* buff = obj._buff;

rawWriter.WriteInt32(len);

auto binWriter = rawWriter.WriteArray();
for (int i = 0; i < len; i++) {
binWriter.Write(buff[i]);
}
binWriter.Close();
}

static void Read(BinaryReader& reader, Pair& dst)
{
BinaryRawReader rawReader = reader.RawReader();

dst._len = rawReader.ReadInt32();

dst._buff = new char[dst._len];
auto binReader = rawReader.ReadArray();
for (int i = 0; i < dst._len; i++) {
dst._buff[i] = binReader.GetNext();
}
}
};

Best Regards,
Igor


On Tue, Aug 4, 2020 at 1:22 AM Denis Magda  wrote:

> Igor,
>
> Would you please join the discussion and help Data tackle the issue?
>
> -
> Denis
>
>
> On Thu, Jul 30, 2020 at 1:03 AM Dana Milan  wrote:
>
>> Hi,
>>
>> I couldn't find an answer anywhere else, hopefully you can help me.
>>
>> I have the following class:
>>
>> class Pair {
>> friend struct ignite::binary::BinaryType;
>> public:
>> Pair() {
>> _len = 0;
>> _buff = nullptr;
>> }
>>
>> Pair(char* buff, int len) {
>> _len = len;
>> _buff = new char[len];
>> for (int i = 0; i < len; i++) {
>> _buff[i] = buff[i];
>> }
>> }
>>
>> ~ Pair() {
>> delete[] _buff;
>> }
>>
>> private:
>> char* _buff;
>> int _len;
>> };
>>
>> I try to serialize the class into cache in the following manner:
>>
>> template<>
>> struct ignite::binary::BinaryType
>> {
>> static int32_t GetTypeId()
>> {
>> return GetBinaryStringHashCode("Pair");
>> }
>>
>> static void GetTypeName(std::string& name)
>> {
>> name = "Pair";
>> }
>>
>> static int32_t GetFieldId(const char* name)
>> {
>> return GetBinaryStringHashCode(name);
>> }
>>
>> static bool IsNull(const Pair& obj)
>> {
>> return false;
>> }
>>
>> static void GetNull(Pair& dst)
>> {
>> dst = Pair();
>> }
>>
>> static void Write(BinaryWriter& writer, const Pair& obj)
>> {
>> BinaryRawWriter rawWriter = writer.RawWriter();
>>
>> int len = obj._len;
>> char* buff = obj._buff;
>>
>> rawWriter.WriteInt32(len);
>>
>> auto binWriter = rawWriter.WriteArray();
>> for (int i = 0; i < len; i++) {
>> binWriter.Write(buff[i]);
>> }
>> binWriter.Close();
>> }
>>
>> static void Read(BinaryReader& reader, Pair& dst)
>> {
>> BinaryRawReader rawReader = reader.RawReader();
>>
>> dst._len = rawReader.ReadInt32();
>>
>> dst._buff = new char[dst._len];
>> auto binReader = rawReader.ReadArray();
>> for (int i = 0; i < dst._len; i++) {
>> dst._buff[i] = binReader.GetNext();
>> }
>> }
>> };
>>
>> When I try to compile I get errors as following:
>> [image: image.png]
>> If I comment out the parts of reading and writing the array it compiles
>> successfully.
>>
>> Does this happen because I also need to serialize the write of 'char'?
>> (If so, how do I do it?)
>> Am I using the ReadArray and WriteArray correctly?
>> Is there another way of storing the char buffer in cache?
>>
>> If someone can provide a working code snippet that would be amazing, but
>> any help would be appreciated.
>> Thanks a lot!
>>
>>


Re: How to build apache ignite binaries using source code for C++ platform

2020-05-29 Thread Igor Sapego
Hi,

C++ code is not built using maven, it uses atuotools or msvc instead.
see ignite/modules/platforms/cpp/DEVNOTES.txt for instructions.

And yes, it does not require internet connection to be built.

Best Regards,
Igor


On Thu, May 28, 2020 at 1:30 PM rakshita04 
wrote:

> Hi , actually we need to build core module of apache , using Maven. Is
> there
> a way to skip optional modules?
> We are using below link to build apache binaries(jar files)-
> https://ignite.apache.org/download.cgi#build-source
>
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Near Cache Support For Thin Clients

2020-05-25 Thread Igor Sapego
I personally think that this feature should be implemented in Ignite,
though maybe we should first start from Continuous Queries for thin
clients.

Best Regards,
Igor


On Mon, May 25, 2020 at 6:15 PM Pavel Tupitsyn  wrote:

> Marty,
>
> Continuous queries are certainly planned for thin clients,
> and that is the best way to get cache update notifications.
>
> On Fri, May 22, 2020 at 8:32 PM Marty Jones  wrote:
>
>> Has there been a request for event listeners for the thin clients?  I am
>> happy to roll my own implementation of the nearcache if I can get the
>> events of when cache items within the cluster are added, modified, or
>> deleted.
>>
>> On Thu, May 21, 2020 at 2:29 PM Marty Jones 
>> wrote:
>>
>>> Honestly near cache for the thin client is a must for me.  Implementing
>>> this is a huge performance gain.
>>>
>>> On Thu, May 21, 2020 at 5:47 AM Pavel Tupitsyn 
>>> wrote:
>>>
 Alex,

 I've recently implemented .NET Native Near Cache [1].
 It is a very similar concept, because caching is performed on platform
 side.

 We had requests for this from different users for quite some time.
 Users were implementing this on their own with Continuous Queries.
 Yes, it is not transactional, but it still provides a huge speedup in
 many cases.

 Thin Client Near Cache can be based on the same mechanism.
 Yes, it is not a trivial feature, but neither is Partition Awareness,
 for example.
 Performance is a feature.

 https://issues.apache.org/jira/browse/IGNITE-12691

 On Thu, May 21, 2020 at 11:35 AM Alex Plehanov 
 wrote:

> Hello,
>
> I don't think that near cache for thin client on Ignite level it's a
> good idea.
>
> Expiration is not the only case here. For thick clients near caches
> are transactionally consistent. For thin clients such a guarantee never 
> can
> be provided.
> Near cache for thin clients will be either too heavy (and this
> contradicts thin clients paradigm) or highly specialized (in this case 
> it's
> better to implement it on user level).
>
> Also, sometimes many thin clients are used inside one application
> (inside one JVM for java thin client). I know deployments where thin 
> client
> pool approach or client per thread approach is used. In these cases, it's
> better to have one near cache for all clients than have it inside each
> client.
>
> I think it's better to provide mechanisms like event listeners or
> continuous queries to make it possible to implement near caches on user
> level with guarantees that best fit user's requirements.
>
> вт, 19 мая 2020 г. в 15:47, Pavel Tupitsyn :
>
>> Ok, thanks for the explanation.
>> Yes, this is a good feature, and I've had this in mind for some time.
>>
>> Ticket filed: https://issues.apache.org/jira/browse/IGNITE-13037
>> There are no immediate plans, but I think there is a possibility to
>> achieve this by the end of the year.
>>
>> On Tue, May 19, 2020 at 2:52 PM Marty Jones 
>> wrote:
>>
>>> The use case is having a local cache that stores most widely used
>>> cache items in memory on server instead of having the network expense of
>>> pulling them down every time they are requested.  The main thing is the
>>> near cache has to support removing cache items that have expired on the
>>> server.
>>>
>>> The best use case I have is a web application that needs a cache
>>> item per request.  we would not want to pull the cache item from the
>>> cluster every request.   It would be way more efficient for the thin 
>>> client
>>> to have a near cache that would hold "hot" cache items that are 
>>> requested
>>> frequently.
>>>
>>> On Tue, May 19, 2020 at 3:43 AM Pavel Tupitsyn 
>>> wrote:
>>>
 Can you please describe the use case in more detail?
 What do you expect from such a feature?

 On Tue, May 19, 2020 at 2:01 AM martybjo...@gmail.com <
 martybjo...@gmail.com> wrote:

> I wanted to see if there are any plans to support near caches for
> thin clients? I think it would be a great feature. I know I could use 
> it
> right now.
> --
> Sent from the Apache Ignite Users mailing list archive
>  at Nabble.com.
>



Re: Can we set TTL (expiry time) of a key-value from thin client?

2020-05-19 Thread Igor Sapego
Which thin client are you referring to?

Best Regards,
Igor


On Mon, May 18, 2020 at 5:09 PM scriptnull 
wrote:

> I would like to break down this question into two questions.
>
> 1. Can we have key-values with different expire times in the same cache? (I
> think the answer for this is yes, because the redis layer in ignite allows
> for this)
>
> 2. I am trying to build a ruby thin client for Apache Ignite and got a
> basic
> prototype in place. But I couldn't find an operation in binary protocol
> documentation that will enable us to set TTL for a key-value pair.  So, any
> idea on how to set TTL via the binary protocol?
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: C++ ODBC Example Question

2020-04-10 Thread Igor Sapego
Yes, you can. You just need to combine C++ PutGet example and ODBC example,
where from C++ you take a part that puts data in cache, and from ODBC you
take
the querying part.

Best Regards,
Igor


On Wed, Apr 8, 2020 at 6:32 PM Anthony  wrote:

> Hello llya,
>
> I guess I may not describe my question more clearly. In the example you
> gave me,
> https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/cpp/examples/put-get-example/src/put_get_example.cpp,
> Can I retrieve the data from the cache using ODBC?
>
> Regards,
>
> Anthony
>
> On Tue, Apr 7, 2020 at 4:11 AM Ilya Kasnacheev 
> wrote:
>
>> Hello!
>>
>> Please take a look at this example, it will store Organization from C++:
>>
>> https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/cpp/examples/put-get-example/src/put_get_example.cpp
>>
>> Some additional configuration will be needed to access data using SQL:
>> https://apacheignite-cpp.readme.io/docs/cross-platform-interoperability
>>
>> https://www.gridgain.com/docs/latest/developers-guide/SQL/sql-key-value-storage
>>
>> Regards,
>> --
>> Ilya Kasnacheev
>>
>>
>> вт, 7 апр. 2020 г. в 02:08, Anthony :
>>
>>> Hello,
>>>
>>> For the following example, instead of storing the "Person" using ODBC,
>>> is it possible to build the "Person" in c++  and store to in the server?
>>>
>>> I still want to use ODBC to retrieve the data.
>>>
>>>
>>> https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/platforms/cpp/examples/odbc-example/src/odbc_example.cpp
>>>
>>>
>>> Thanks,
>>>
>>> Anthony
>>>
>>


Re: Do we have any Python experts in the community?

2020-03-31 Thread Igor Sapego
I'm not very experienced in Python, but if no one else wants
to take a look, I'll do it.

Best Regards,
Igor


On Sat, Mar 28, 2020 at 2:04 AM Denis Magda  wrote:

> Igniters,
>
> Is any of you is skillful enough to contribute improvements to our Python
> thin client? For instance, that's one of the tickets that has been recently
> reported on the user list:
> https://issues.apache.org/jira/browse/IGNITE-12809
>
> -
> Denis
>


Re: Sequence with ODBC

2020-02-25 Thread Igor Sapego
There is no such option currently, AFAIK

Best Regards,
Igor


On Tue, Feb 25, 2020 at 3:02 PM Abhay Gupta  wrote:

> Hi ,
>
>
>
> Do we have a way to have Autoincrement field in Database for use in Thin
> Client / UNIX ODBC . The Atomic sequence help is available with Java when
> JAVA ignite is used but it does not tell if the same is available through
> thin client protocol or not .
>
>
>
> Regards,
>
>
>
> Abhay Gupta
>
>
>


Re: Column name in lower case

2020-02-18 Thread Igor Sapego
There are no such way in ODBC, but maybe SQL guys can suggest
some solution here.

Anyway this is weird, as software that uses ODBC can actually query
ODBC driver for the case of the returned SQL symbols, and our driver
clearly states that it uses upper case.

Best Regards,
Igor


On Tue, Feb 18, 2020 at 11:06 AM Abhay Gupta  wrote:

> Hi,
>
>
>
> I am using UNIX ODBC and since create table command causes column name in
> UPPER case , and so SQLDescribeCol returns column name in UPPER case .
>
>
>
> Some of the application servers like Asterisk which checks the column name
> breaks as they expect the column name to be lower case . Is there a way to
> create column name in lower case and run the query on them without using
> double quotes .
>
>
>
> Regards,
>
>
>
> Abhay Gupta
>
>
>


Re: Need help for Access Violation

2020-02-12 Thread Igor Sapego
No, they are not.

Honestly, I'm running out of ideas as I can not reproduce the issue
and thus can not debug it. It actually looks like some kind of memory
corruption. Are you sure that the issue can be reproduced with the
code snippet you've provided?

Best Regards,
Igor


On Tue, Feb 11, 2020 at 12:40 AM Anthony  wrote:

> Yes. I was using MSVC for both of them.
>
> BTW, are the project odbc and thin-client in the ignite needed? I did not
> build them because of some compiling issues.
>
> On Mon, Feb 10, 2020 at 5:54 AM Igor Sapego  wrote:
>
>> The issue looks very weird to me. Have you compiled the Ignite
>> libs using the same compiler as you use in your project?
>>
>> Best Regards,
>> Igor
>>
>>
>> On Fri, Feb 7, 2020 at 7:39 PM Anthony  wrote:
>>
>>> Hello,
>>> The "usrCp" value is
>>> NameValueType
>>> ▶ usrCp  const std::string &
>>> Seems that the "cfg.jvmClassPath" was not set properly?
>>>
>>> I am not familiar with java environment, should i set some environmental
>>> variable?
>>>
>>> Thank you!
>>>
>>> Anthony
>>>
>>> On Fri, Feb 7, 2020 at 5:20 AM Igor Sapego  wrote:
>>>
>>>> Hi
>>>>
>>>> And what is the value of "usrCp" argument?
>>>> For me the code works just fine.
>>>>
>>>> Best Regards,
>>>> Igor
>>>>
>>>>
>>>> On Fri, Feb 7, 2020 at 12:22 AM Anthony  wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I am new to ignite C++. I am using windows 10, VS community.
>>>>>
>>>>> I keep getting Access Violation when I am trying to run the following
>>>>> code.
>>>>>
>>>>> #include
>>>>> #include
>>>>> using namespace ignite;
>>>>>
>>>>> int main() {
>>>>> IgniteConfiguration cfg;
>>>>> Ignite node = Ignition::Start(cfg);
>>>>> std::cout << "node started" << std::endl;
>>>>> return 0;
>>>>> }
>>>>>
>>>>> Can anyone help with that?
>>>>>
>>>>> The error was generated from:
>>>>>
>>>>> std::string NormalizeClasspath(const std::string& usrCp)
>>>>> {
>>>>> if (usrCp.empty() || *usrCp.rbegin() == ';')
>>>>> return usrCp;
>>>>>
>>>>> return usrCp + ';';
>>>>> }
>>>>> Following are the error messages:
>>>>>
>>>>> Exception thrown at 0x7FFBADD635D6 (ignite.jni.dll) in
>>>>> Project1.exe: 0xC005: Access violation reading location
>>>>> 0x. occurred
>>>>>
>>>>> Thank you !!
>>>>>
>>>>


Re: Need help for Access Violation

2020-02-10 Thread Igor Sapego
The issue looks very weird to me. Have you compiled the Ignite
libs using the same compiler as you use in your project?

Best Regards,
Igor


On Fri, Feb 7, 2020 at 7:39 PM Anthony  wrote:

> Hello,
> The "usrCp" value is
> NameValueType
> ▶ usrCp  const std::string &
> Seems that the "cfg.jvmClassPath" was not set properly?
>
> I am not familiar with java environment, should i set some environmental
> variable?
>
> Thank you!
>
> Anthony
>
> On Fri, Feb 7, 2020 at 5:20 AM Igor Sapego  wrote:
>
>> Hi
>>
>> And what is the value of "usrCp" argument?
>> For me the code works just fine.
>>
>> Best Regards,
>> Igor
>>
>>
>> On Fri, Feb 7, 2020 at 12:22 AM Anthony  wrote:
>>
>>> Hello,
>>>
>>> I am new to ignite C++. I am using windows 10, VS community.
>>>
>>> I keep getting Access Violation when I am trying to run the following
>>> code.
>>>
>>> #include
>>> #include
>>> using namespace ignite;
>>>
>>> int main() {
>>> IgniteConfiguration cfg;
>>> Ignite node = Ignition::Start(cfg);
>>> std::cout << "node started" << std::endl;
>>> return 0;
>>> }
>>>
>>> Can anyone help with that?
>>>
>>> The error was generated from:
>>>
>>> std::string NormalizeClasspath(const std::string& usrCp)
>>> {
>>> if (usrCp.empty() || *usrCp.rbegin() == ';')
>>> return usrCp;
>>>
>>> return usrCp + ';';
>>> }
>>> Following are the error messages:
>>>
>>> Exception thrown at 0x7FFBADD635D6 (ignite.jni.dll) in Project1.exe:
>>> 0xC005: Access violation reading location 0x. occurred
>>>
>>> Thank you !!
>>>
>>


Re: Need help for Access Violation

2020-02-07 Thread Igor Sapego
Hi

And what is the value of "usrCp" argument?
For me the code works just fine.

Best Regards,
Igor


On Fri, Feb 7, 2020 at 12:22 AM Anthony  wrote:

> Hello,
>
> I am new to ignite C++. I am using windows 10, VS community.
>
> I keep getting Access Violation when I am trying to run the following code.
>
> #include
> #include
> using namespace ignite;
>
> int main() {
> IgniteConfiguration cfg;
> Ignite node = Ignition::Start(cfg);
> std::cout << "node started" << std::endl;
> return 0;
> }
>
> Can anyone help with that?
>
> The error was generated from:
>
> std::string NormalizeClasspath(const std::string& usrCp)
> {
> if (usrCp.empty() || *usrCp.rbegin() == ';')
> return usrCp;
>
> return usrCp + ';';
> }
> Following are the error messages:
>
> Exception thrown at 0x7FFBADD635D6 (ignite.jni.dll) in Project1.exe:
> 0xC005: Access violation reading location 0x. occurred
>
> Thank you !!
>


Re: Transaction operations using the Ignite Thin Client Protocol

2019-12-02 Thread Igor Sapego
Ivan,

You are right. Though now we have transactions support in thin client
protocol,
It is only now implemented for Java. Also, C++ thin client yet to support
SQL.

Best Regards,
Igor


On Sat, Nov 30, 2019 at 9:35 AM Ivan Pavlukhin  wrote:

> Igor,
>
> Could you please elaborate whether C++ thin client is going to have
> transactions support in 2.8? AFAIR, it was implemented only for Java
> thin client.
>
> пт, 29 нояб. 2019 г. в 18:29, Stephen Darlington
> :
>
> >
> > The ticket says “Fix version: 2.8” so I would assume it would be
> available then. Currently planned for late January.
> >
> > > On 29 Nov 2019, at 13:58, dkurzaj  wrote:
> > >
> > > Hello,
> > >
> > > Since this improvement :
> https://issues.apache.org/jira/browse/IGNITE-9410
> > > is resolved, I'd assume that it is now possible to do SQL transactions
> using
> > > the C++ thin client, though I'm not sure it is yet since I did not find
> > > documentation about that. Would someone happen to know more about this
> > > subject?
> > >
> > > Thank you!
> > >
> > > Dorian
> > >
> > >
> > >
> > > --
> > > Sent from: http://apache-ignite-users.70518.x6.nabble.com/
> >
> >
>
>
> --
> Best regards,
> Ivan Pavlukhin
>


Re: Ignite support for config BinaryBasicNameMapper with simpleName set to true

2019-10-14 Thread Igor Sapego
Hello,

It's strange, we have tested it and it should work.

Are you sure, the right config is used by all nodes?

Best Regards,
Igor


On Sun, Oct 13, 2019 at 6:10 PM 朱靓 <11852...@qq.com> wrote:

> Hi
>I am new to Ignite, and i will use C# save cache and fetch with python
> and C++. After read the doc , i use the config with simple name to avoid
> strange thing of namespace. But it seems not effect. I set simpleName to
> true. But in Ignite, it saves objects with full name.
> We can see the class name PanoControls.Views.V2XVehicleParaView is full
> name not simple name, in my think, if we set simpleName to true, ignite
> should save with name V2XVehicleParaView.
>
> Could anyone help?
> Below list config and ignite data.
>
> Config:
>
>   
> 
>   
> 
>   
>
> Data in Ignite
>
> visor> cache -scan -c=PanoSenarioFrameCache
> Entries in  cache: PanoSenarioFrameCache
>
> +==+
> |Key Class |Key |   Value Class   |
>
>
>
>
>Value
>
>
>
>
> |
>
> +==+
> | java.lang.String | V2XVehicle | o.a.i.i.binary.BinaryObjectImpl |
> PanoControls.Views.V2XVehicleParaView [hash=-1087297976,
> ActivateTheTurnSignalProperty=PanoControls.Views.V2XVehicleParaView+ActivateTheTurnSignal
> [ordinal=0], RangeRadius=0,
> ActivateEmergencyBrakeProperty=PanoControls.Views.V2XVehicleParaView+ActivateEmergencyBrake
> [ordinal=0],
> EmergencyVehicleProperty=PanoControls.Views.V2XVehicleParaView+EmergencyVehicle
> [ordinal=0], PacketLossRate=12.0, AverageDelay=0, Frequency=0.0,
> OutOfControlVehicleProperty=System.Collections.Generic.List`1[[PanoControls.Views.V2XVehicleParaView+OutOfControlVehicle]]
> [idHash=353470994, hash=1983113259, _size=0, _items=[, _version=0],
> CurrentParentNameProperty=runVeh,
> ActivateFaultLightProperty=PanoControls.Views.V2XVehicleParaView+ActivateFaultLight
> [ordinal=0]] |
>
> +--+
> visor>
>


Re: Running a C++ Thick Node compute func from a Java Thick Node

2019-09-16 Thread Igor Sapego
Hello,

Such function is not supported for now. You can raise a ticket
if it's something you'd like to have in Ignite.

Best Regards,
Igor


On Mon, Sep 16, 2019 at 6:00 PM codie  wrote:

> Hello,
> I have two nodes running with a TCP Discovery Spi, one is a C++ Thick
> node and one is a Java Thick node. The C++ node has the examples compute
> func "CountWords" registered. How can I trigger this function from the
> Java thick nodes? Does "RegisterComputeFunc" not inform other nodes,
> that the compute function can be found on this specific c++ node?
>
> Thanks,
> Json
>
>


Re: [cpp] Setup a near cache on client and server nodes

2019-09-16 Thread Igor Sapego
Denis,

No ideas here. I think, it is not possible right now from pure C++.

Best Regards,
Igor


On Sat, Sep 14, 2019 at 1:02 AM Denis Magda  wrote:

> Igor,
>
> Any idea how to start a cache dynamically from C++ thick client passing
> near cache settings?
>
> Don't see how we can do it know unless you start a special Java app that
> starts the caches with required settings and dies.
>
> -
> Denis
>
>
> On Fri, Sep 13, 2019 at 2:34 PM Oleg Popov  wrote:
>
>> As I wrote before - I create caches dynamically and cannot declare cache
>> configuration in client.xml because cache doesn't exist yet.
>>
>> --
>> *From: *"Denis Magda" 
>> *To: *"user" 
>> *Sent: *Friday, September 13, 2019 10:50:16 PM
>> *Subject: *Re: [cpp] Setup a near cache on client and server nodes
>>
>> Oleg,
>> You need to add the near cache settings to Ignite client configuration
>> explicitly. Please try out the code snippets from this documentation page:
>> https://apacheignite.readme.io/docs/near-caches
>>
>> -
>> Denis
>>
>>
>> On Fri, Sep 13, 2019 at 12:36 PM Oleg Popov  wrote:
>>
>>> I use thick client. I don't have any records with caches configurations
>>> in my client XML file (I create caches dynamically through REST requests
>>> and caches templates).
>>>
>>> I don't know where I should place a near cache configuration on a
>>> client. Should I explicitly declare a cache configuration and put a near
>>> cache configuration into it  ?
>>>
>>> Could you share a working settings (data node, client node) of a near
>>> cache ?
>>>
>>> --
>>> *From: *"Denis Magda" 
>>> *To: *"user" 
>>> *Sent: *Friday, September 13, 2019 8:46:06 PM
>>> *Subject: *Re: [cpp] Setup a near cache on client and server nodes
>>>
>>> Hello Oleg,
>>> Just to confirm, do you use C++ thin or thick (regular) client? If you
>>> have inserted this property into the configuration on the client side then
>>> it should work. Something might have failed on the visor end.
>>>
>>> Btw, do you see any performance difference after turning on/off the near
>>> cache?
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Thu, Sep 12, 2019 at 12:30 AM Oleg Popov  wrote:
>>>
 Hello.

 Configuration:

 1. N1 и N2 - data nodes (in different k8s clusters).
 2. C1 - client node (outside of k8s clusters; c++ client node).
 3. All caches are replicated. Caches create through REST/caches
 templates.

 Need:

 1. C1 has to have a near cache for better performance.

 Question:

 1. How to enable and use a near cache on client and data nodes ?
 2. Is there any support NearConfiguration in C++ ?

 I have already tried to add:

 

 
 
 >>> class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
 
 
 
 
 

 to a cache template, but ignitevisor shows that near cache is disabled
 ("off" state).


 С уважением, Попов О.В. / Best regards, Popov V Oleg

>>>
>>


Abandoning support of Visual Studio 2010

2019-07-12 Thread Igor Sapego
Hello Igniters,

Soon there will be Ignite 3.0, so I though this may be a good time
to speak about abandoning Visual Studio 2010 (msvc 10.0) support,
which will allow us to move to more modern features in Ignite C++.

Any thoughts or objections? Are there people which will be critically
affected by this? What are version of VS you are using, if you are
using one?

Best Regards,
Igor


Re: install_amd

2019-07-03 Thread Igor Sapego
Hi,

There is probably some error in the call, if you'd give me an example of
how you call
the script I could try to help you. But why don't you use an msi installer?
It is easier
and more reliable way to install ODBC driver on windows.

Best Regards,
Igor


On Wed, Jul 3, 2019 at 5:28 PM ilyn  wrote:

> Hi, I previously had created my Apache Ignite ODBC driver by running this
> from apache-ignite-2.7-bin\platforms\cpp\odbc\install and it worked without
> issue.  I just downloaded apache-ignite-2.7.5-bin so wanted to recreate the
> odbc driver.  I uninstalled the previously installed Apache Ignite driver,
> and tried to run this.  When i run this I receive the following message -
> error: 64-bit driver is not specified. Call format: install_amd64
> abs_path_to_64_bit_driver [abs_path_to_32_bit_driver]
> Any idea what happened? I was previously able to uninstall/reinstall when I
> migrated from 2.6 to 2.7 without issue.
>
> Thanks in advance!
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Thick client/thin client difference and how to get thin client port

2019-06-28 Thread Igor Sapego
Well, it seems like you start two nodes on the same host, and as first
node occupies default thin client port (10800) the second node takes
the next one (10801).

I believe you use 127.0.0.1 or something like this for your thin client
host lists which effectively means 127.0.0.1:10800. So, your thin client
just is not aware about the second node which is using 10801 port once
the first node is dead. To fix it you can write a second address in your
client configuration: 127.0.0.1:10800,127.0.0.1:10801 or simply
127.0.0.1:10800..10801.

Hope, it helps.

Best Regards,
Igor


On Fri, Jun 28, 2019 at 10:14 AM rick_tem  wrote:

> Hi,
>
> I am seeing that a thin client cannot reconnect (on the same port) after a
> server shutdown.  I have 1 backup enabled and load some data in the cache
> on
> startup.  Replication procedure is:
> 1) Start server 1
> 2) Try thin client --> it retrieves data
> 3) Start server 2
> 4) Kill server 1 (Server 2 output below)
> 5) Try thin client --> fails with :
> org.apache.ignite.client.ClientConnectionException: Ignite cluster is
> unavailable
> at
>
> org.apache.ignite.internal.client.thin.TcpClientChannel.(TcpClientChannel.java:114)
> ~[ignite-core-2.7.5.jar:2.7.5]
> 6) Try thick client --> works fine
>
> Almost certainly this is due to the connection port for the thin client (as
> server 2 thin client listener cannot start on the same port).  But how do I
> discover which port is opened on server 2 for thin clients?
>
> Thanks,
> Rick
>
> Server 2
> [08:51:40] Topology snapshot [ver=2, locNode=3da900bd, servers=2,
> clients=0,
> state=ACTIVE, CPUs=4, offheap=9.3GB, heap=7.9GB]
> StartIgnite-->Ignite Initialization.  Got cache Tables from Ignite.
> [08:51:56] Topology snapshot [ver=3, locNode=3da900bd, servers=1,
> clients=0,
> state=ACTIVE, CPUs=4, offheap=4.6GB, heap=4.0GB]
> [08:51:56] Coordinator changed [prev=TcpDiscoveryNode
> [id=ae5f19f3-2cfe-477b-b16d-4d12fb95aaad, addrs=[10.0.75.1, 127.0.0.1,
> 172.27.252.225, 192.168.1.123, 192.168.32.1],
> sockAddrs=[/172.27.252.225:47500, /10.0.75.1:47500, /127.0.0.1:47500,
> /192.168.32.1:47500, L2SG9M32.europe.temenosgroup.com/192.168.1.123:47500
> ],
> discPort=47500, order=1, intOrder=1, lastExchangeTime=1561704688821,
> loc=false, ver=2.7.5#20190603-sha1:be4f2a15, isClient=false],
> cur=TcpDiscoveryNode [id=3da900bd-79b3-4b49-a0d4-4b6cbe134b54,
> addrs=[10.0.75.1, 10.30.200.76, 127.0.0.1, 172.27.252.225, 192.168.1.123,
> 192.168.32.1],
> sockAddrs=[L2SG9M32.europe.temenosgroup.com/192.168.1.123:47501,
> L2SG9M32.mshome.net/172.27.252.225:47501, /10.30.200.76:47501,
> /127.0.0.1:47501, /192.168.32.1:47501, /10.0.75.1:47501], discPort=47501,
> order=2, intOrder=2, lastExchangeTime=1561704716259, loc=true,
> ver=2.7.5#20190603-sha1:be4f2a15, isClient=false]]
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Need help with Linux ODBC Driver

2019-06-17 Thread Igor Sapego
Hi,

I'm not working on this issue currently and is not aware
if anyone else in the community looking at it.

But I think it's going to be fixed by 2.8 or 2.9 as it looks
quite important.

Best Regards,
Igor


On Fri, Jun 7, 2019 at 7:53 PM Charles Rene 
wrote:

> Hi Igor, When will this issue be addressed? Thanks, Charlie
>
> On Mon, May 13, 2019 at 9:55 AM Igor Sapego  wrote:
>
>> It seems like some encoding related issue to me.
>> Added a Jira ticket: [1].
>>
>> [1] - https://issues.apache.org/jira/browse/IGNITE-11845
>>
>> Best Regards,
>> Igor
>>
>>
>> On Thu, May 2, 2019 at 1:15 AM Charles Rene 
>> wrote:
>>
>>> Hello,
>>>
>>> I'm having trouble using the Apache Ignite 2.7.0 Linux built ODBC
>>> driver. I'm running a .Net Core 2.2 console application in a Linux
>>> environment in Docker.
>>>
>>> The problem is that when I run a SELECT statement through .Net's
>>> System.Data.Odbc, I get back "bad data". It looks like a mismatch in
>>> encoding.
>>>
>>> The data looks like  "8\00\05\07\09\0d\09\08\0-\0" where as it should
>>> be "80579d98-9010-4610-b12e-ed33ed7d3c62".
>>>
>>> Details about my investigation can be found here:
>>>
>>> https://stackoverflow.com/questions/55875927/apache-ignite-2-7-odbc-linux-bad-data-returned
>>>
>>>
>>> Any idea what the problem might be?
>>>
>>> Thank you,
>>> Charlie
>>>
>>


Re: Native Client/Full Python API

2019-05-21 Thread Igor Sapego
There are no plans for thick client for python, but there are
plans for Compute for thin clients. I think, as a first step we may
add ability to call Java jobs from python. It will still require to write
some java code from a user, but it will accept and return values
data in python's native format. Will this cover your scenario? There
are no yet work is going on in this field so it may be a good time to
collect opinions and user use cases.

Best Regards,
Igor


On Tue, May 21, 2019 at 11:11 AM Evgeniy Ignatiev <
yevgeniy.ignat...@gmail.com> wrote:

> By the way, has anybody in the community explored options for
> integration like https://github.com/hugheba/graaljs-ignite - using
> GraalPython with Apache Ignite?
>
> Best regards,
> Evgeniy Ignatiev.
>
> On 5/20/2019 10:05 PM, mfrey wrote:
> > Hello,
> >
> > Is there a plan to release the native client API for Python (like the
> > Java, .Net and C++ ones) ? I am not talking about the thin client here.
> >
> > I am evaluating Apache Ignite for a solution with many decentralized
> > write-backs/data imports and quite complex business calculations. i would
> > like to push as many as possible of the calculations to the database
> layer,
> > to avoid querying data and doing the processing in Python.
> >
> > My understanding is that I cannot create/execute calculation with the
> thin
> > client and this is only possible with the native client, is that correct
> ?
> >
> > Using Java/.Net is not alternative in my case, as the solution will need
> to
> > run fully on python to integrate nicely with other solutions.
> >
> >
> >
> >
> > --
> > Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: C++ Thin Client Lacks PC File

2019-05-20 Thread Igor Sapego
Maybe, you could start with these threads: [1], [2]

[1] -
https://lists.freedesktop.org/archives/pkg-config/2007-August/000218.html
[2] - https://autotools.io/pkgconfig/file-format.html

Best Regards,
Igor


On Mon, May 20, 2019 at 4:57 PM mwilliamso58 
wrote:

> bump
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Need help with Linux ODBC Driver

2019-05-17 Thread Igor Sapego
Charles,

Thanks for the reproducer, I'll check it out.

Best Regards,
Igor


On Thu, May 16, 2019 at 6:59 PM Charles Rene 
wrote:

> Thanks Igor. I also noticed that the Linux ODBC Driver deserializes the
> Ignite UUID data type into a byte[] instead of the .Net Guid type. That is
> contrary to what is stated in the documentation (
> https://apacheignite-sql.readme.io/docs/data-types#section-uuid).
>
> SQL Example:
> CREATE TABLE MyTable (Id INT not null, myUUID UUID, PRIMARY KEY (Id));
> INSERT INTO MyTable (Id, myUUID) VALUES (0,
> '24E4A97A-96DC-47EB-89C0-9C44E60DC048');
> SELECT myUUID FROM MyTable;
>
> C#:
> using System;
> using System.Data.Odbc;
>
> namespace IgniteUUIDWrongDataTypeReproducer {
> internal class Program {
> private static void Main(string[] args) {
> var connectionString =
> Environment.GetEnvironmentVariable("IGNITE_CONNECTION_STRING");
>
> using (var conn = new OdbcConnection(connectionString)) {
> conn.Open();
>
> using (var cmd = conn.CreateCommand()) {
> cmd.CommandText = "DROP TABLE IF EXISTS MyTable;";
> cmd.ExecuteNonQuery();
> }
>
> using (var cmd = conn.CreateCommand()) {
> cmd.CommandText = "CREATE TABLE MyTable (Id INT not
> null, myUUID UUID, PRIMARY KEY (Id));";
> cmd.ExecuteNonQuery();
> }
>
> using (var cmd = conn.CreateCommand()) {
> cmd.CommandText = "INSERT INTO MyTable (Id, myUUID)
> VALUES (0, '24E4A97A-96DC-47EB-89C0-9C44E60DC048');";
> cmd.ExecuteNonQuery();
> }
>
> using (var cmd = conn.CreateCommand()) {
> cmd.CommandText = "SELECT myUUID FROM MyTable;";
> using (var rdr = cmd.ExecuteReader()) {
> rdr.Read();
> var value = rdr[0];
> Console.WriteLine($"{rdr.GetName(0)}='{value}'
> DotnetType='{value.GetType()}' DBType='{rdr.GetDataTypeName(0)}'");
> }
> }
> }
> }
> }
> }
>
> Console Output:
> MYUUID='System.Byte[]' DotnetType='System.Byte[]' DBType='VARBINARY'
>
> Should be: (According to
> https://docs.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-data-types?view=sql-server-2017
> )
> MYUUID='24E4A97A-96DC-47EB-89C0-9C44E60DC048' DotnetType='System.Guid'
> DBType='GUID'
>
>
>
>
>
> On Mon, May 13, 2019 at 9:55 AM Igor Sapego  wrote:
>
>> It seems like some encoding related issue to me.
>> Added a Jira ticket: [1].
>>
>> [1] - https://issues.apache.org/jira/browse/IGNITE-11845
>>
>> Best Regards,
>> Igor
>>
>>
>> On Thu, May 2, 2019 at 1:15 AM Charles Rene 
>> wrote:
>>
>>> Hello,
>>>
>>> I'm having trouble using the Apache Ignite 2.7.0 Linux built ODBC
>>> driver. I'm running a .Net Core 2.2 console application in a Linux
>>> environment in Docker.
>>>
>>> The problem is that when I run a SELECT statement through .Net's
>>> System.Data.Odbc, I get back "bad data". It looks like a mismatch in
>>> encoding.
>>>
>>> The data looks like  "8\00\05\07\09\0d\09\08\0-\0" where as it should
>>> be "80579d98-9010-4610-b12e-ed33ed7d3c62".
>>>
>>> Details about my investigation can be found here:
>>>
>>> https://stackoverflow.com/questions/55875927/apache-ignite-2-7-odbc-linux-bad-data-returned
>>>
>>>
>>> Any idea what the problem might be?
>>>
>>> Thank you,
>>> Charlie
>>>
>>


Re: C++ Thin Client Lacks PC File

2019-05-17 Thread Igor Sapego
Hi,

Sorry for not replying from the start.

This is not intentional, and, I believe, should be fixed by the next
release.

Best Regards,
Igor


On Fri, May 17, 2019 at 4:12 PM mwilliamso58 
wrote:

> bump
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Timestamp with Python thin client

2019-05-17 Thread Igor Sapego
These are nanosecond fraction of the last microsecond (It can be only from
0 to 999).

Ignite's Timestamp have a nanoseconds precision, so it can not be
represented
by the datetime type only.

You can find some details here: [1]

[1] -
https://apache-ignite-binary-protocol-client.readthedocs.io/en/latest/source/pyignite.datatypes.standard.html#pyignite.datatypes.standard.TimestampObject


Best Regards,
Igor



On Thu, May 16, 2019 at 9:02 AM Stéphane Thibaud 
wrote:

> I see. Thank you. I am still a bit unsure about what the second value in
> the tuple represents. Are these indeed the nanoseconds? Apparently a Python
> datetime can have differing precisions (perhaps depending on platform)...
>
>
> Kind regards,
>
> Stéphane Thibaud
>
>
> 2019年5月16日(木) 0:10 Igor Sapego :
>
>> I believe, it's OK to pass tuple for timestamp in python, but you also
>> should
>> add a tip for the client to inform it you are going to store timestamp
>> value.
>>
>> Take a look at tests for example: [1]
>>
>> 1 -
>> https://github.com/apache/ignite/blob/master/modules/platforms/python/tests/test_datatypes.py#L80
>>
>> Best Regards,
>> Igor
>>
>>
>> On Wed, May 15, 2019 at 12:24 PM Stéphane Thibaud 
>> wrote:
>>
>>> Thank you. I will try to create a code line to reproduce it, but I
>>> remember the following: when you do a 'select' query on a timestamp column
>>> with the Python thin client, you get a tuple. Because of that, I assumed
>>> that a tuple also had to be written in an update query.
>>>
>>>
>>> Kind regards,
>>>
>>> Stéphane Thibaud
>>>
>>> 2019年5月15日(水) 17:59 Igor Sapego :
>>>
>>>> Stéphane,
>>>>
>>>> Can you sharer a code line, how do you try to store timestamp value?
>>>>
>>>> Best Regards,
>>>> Igor
>>>>
>>>>
>>>> On Tue, May 14, 2019 at 7:23 PM Denis Mekhanikov 
>>>> wrote:
>>>>
>>>>> Stéphane,
>>>>>
>>>>> Could you provide the code, that results in this exception?
>>>>> Do you try to insert the tuple as a single field via SQL? There is no
>>>>> such primitive as a tuple in SQL, so you should probably split timestamp
>>>>> into datetime and nanoseconds columns and store them separately as two
>>>>> different columns.
>>>>>
>>>>> Denis
>>>>>
>>>>> сб, 4 мая 2019 г. в 10:39, Stéphane Thibaud :
>>>>>
>>>>>> Hello Apache users,
>>>>>>
>>>>>> I am running into the following issue: when I try to store a
>>>>>> timestamp with nanosecond precision with the Python Thin client, I get 
>>>>>> the
>>>>>> stack trace below. I have specified the timestamp as a tuple of 
>>>>>> (datetime,
>>>>>> nanoseconds) as that is the format in which I also get timestamps back 
>>>>>> from
>>>>>> the apache ignite client. Strangely, I can set just a datetime, but then
>>>>>> the nanoseconds become zero. Am I doing it in the wrong way? Any
>>>>>> suggestions?
>>>>>>
>>>>>>
>>>>>>
>>>>>> db.sql(query, query_args=[converted_row[c] for c in
>>>>>> table.column_names])
>>>>>>   File
>>>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/client.py",
>>>>>> line 401, in sql
>>>>>> max_rows, timeout,
>>>>>>   File
>>>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/api/sql.py",
>>>>>> line 370, in sql_fields
>>>>>> 'include_field_names': include_field_names,
>>>>>>   File
>>>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/queries/__init__.py",
>>>>>> line 260, in from_python
>>>>>> buffer += c_type.from_python(values[name])
>>>>>>   File
>>>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/datatypes/internal.py",
>>>>>> line 471, in from_python
>>>>>> buffer += infer_from_python(x)
>>>>>>   File
>>>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/datatypes/internal.py",
>>>>>> line 399, in infer_from_python
>>>>>> if is_hinted(value):
>>>>>>   File
>>>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/utils.py",
>>>>>> line 51, in is_hinted
>>>>>> and issubclass(value[1], IgniteDataType)
>>>>>>   File "/usr/lib/python3.7/abc.py", line 143, in __subclasscheck__
>>>>>> return _abc_subclasscheck(cls, subclass)
>>>>>> TypeError: issubclass() arg 1 must be a class
>>>>>>
>>>>>> Kind regards,
>>>>>>
>>>>>> Stéphane Thibaud
>>>>>>
>>>>>>
>>>>>>


Re: Timestamp with Python thin client

2019-05-15 Thread Igor Sapego
I believe, it's OK to pass tuple for timestamp in python, but you also
should
add a tip for the client to inform it you are going to store timestamp
value.

Take a look at tests for example: [1]

1 -
https://github.com/apache/ignite/blob/master/modules/platforms/python/tests/test_datatypes.py#L80

Best Regards,
Igor


On Wed, May 15, 2019 at 12:24 PM Stéphane Thibaud 
wrote:

> Thank you. I will try to create a code line to reproduce it, but I
> remember the following: when you do a 'select' query on a timestamp column
> with the Python thin client, you get a tuple. Because of that, I assumed
> that a tuple also had to be written in an update query.
>
>
> Kind regards,
>
> Stéphane Thibaud
>
> 2019年5月15日(水) 17:59 Igor Sapego :
>
>> Stéphane,
>>
>> Can you sharer a code line, how do you try to store timestamp value?
>>
>> Best Regards,
>> Igor
>>
>>
>> On Tue, May 14, 2019 at 7:23 PM Denis Mekhanikov 
>> wrote:
>>
>>> Stéphane,
>>>
>>> Could you provide the code, that results in this exception?
>>> Do you try to insert the tuple as a single field via SQL? There is no
>>> such primitive as a tuple in SQL, so you should probably split timestamp
>>> into datetime and nanoseconds columns and store them separately as two
>>> different columns.
>>>
>>> Denis
>>>
>>> сб, 4 мая 2019 г. в 10:39, Stéphane Thibaud :
>>>
>>>> Hello Apache users,
>>>>
>>>> I am running into the following issue: when I try to store a timestamp
>>>> with nanosecond precision with the Python Thin client, I get the stack
>>>> trace below. I have specified the timestamp as a tuple of (datetime,
>>>> nanoseconds) as that is the format in which I also get timestamps back from
>>>> the apache ignite client. Strangely, I can set just a datetime, but then
>>>> the nanoseconds become zero. Am I doing it in the wrong way? Any
>>>> suggestions?
>>>>
>>>>
>>>>
>>>> db.sql(query, query_args=[converted_row[c] for c in
>>>> table.column_names])
>>>>   File
>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/client.py",
>>>> line 401, in sql
>>>> max_rows, timeout,
>>>>   File
>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/api/sql.py",
>>>> line 370, in sql_fields
>>>> 'include_field_names': include_field_names,
>>>>   File
>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/queries/__init__.py",
>>>> line 260, in from_python
>>>> buffer += c_type.from_python(values[name])
>>>>   File
>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/datatypes/internal.py",
>>>> line 471, in from_python
>>>> buffer += infer_from_python(x)
>>>>   File
>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/datatypes/internal.py",
>>>> line 399, in infer_from_python
>>>> if is_hinted(value):
>>>>   File
>>>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/utils.py",
>>>> line 51, in is_hinted
>>>> and issubclass(value[1], IgniteDataType)
>>>>   File "/usr/lib/python3.7/abc.py", line 143, in __subclasscheck__
>>>> return _abc_subclasscheck(cls, subclass)
>>>> TypeError: issubclass() arg 1 must be a class
>>>>
>>>> Kind regards,
>>>>
>>>> Stéphane Thibaud
>>>>
>>>>
>>>>


Re: Timestamp with Python thin client

2019-05-15 Thread Igor Sapego
Stéphane,

Can you sharer a code line, how do you try to store timestamp value?

Best Regards,
Igor


On Tue, May 14, 2019 at 7:23 PM Denis Mekhanikov 
wrote:

> Stéphane,
>
> Could you provide the code, that results in this exception?
> Do you try to insert the tuple as a single field via SQL? There is no such
> primitive as a tuple in SQL, so you should probably split timestamp into
> datetime and nanoseconds columns and store them separately as two different
> columns.
>
> Denis
>
> сб, 4 мая 2019 г. в 10:39, Stéphane Thibaud :
>
>> Hello Apache users,
>>
>> I am running into the following issue: when I try to store a timestamp
>> with nanosecond precision with the Python Thin client, I get the stack
>> trace below. I have specified the timestamp as a tuple of (datetime,
>> nanoseconds) as that is the format in which I also get timestamps back from
>> the apache ignite client. Strangely, I can set just a datetime, but then
>> the nanoseconds become zero. Am I doing it in the wrong way? Any
>> suggestions?
>>
>>
>>
>> db.sql(query, query_args=[converted_row[c] for c in
>> table.column_names])
>>   File
>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/client.py",
>> line 401, in sql
>> max_rows, timeout,
>>   File
>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/api/sql.py",
>> line 370, in sql_fields
>> 'include_field_names': include_field_names,
>>   File
>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/queries/__init__.py",
>> line 260, in from_python
>> buffer += c_type.from_python(values[name])
>>   File
>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/datatypes/internal.py",
>> line 471, in from_python
>> buffer += infer_from_python(x)
>>   File
>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/datatypes/internal.py",
>> line 399, in infer_from_python
>> if is_hinted(value):
>>   File
>> "/home/snthibaud/PycharmProjects/tabee/venv/lib/python3.7/site-packages/pyignite/utils.py",
>> line 51, in is_hinted
>> and issubclass(value[1], IgniteDataType)
>>   File "/usr/lib/python3.7/abc.py", line 143, in __subclasscheck__
>> return _abc_subclasscheck(cls, subclass)
>> TypeError: issubclass() arg 1 must be a class
>>
>> Kind regards,
>>
>> Stéphane Thibaud
>>
>>
>>


Re: Need help with Linux ODBC Driver

2019-05-13 Thread Igor Sapego
It seems like some encoding related issue to me.
Added a Jira ticket: [1].

[1] - https://issues.apache.org/jira/browse/IGNITE-11845

Best Regards,
Igor


On Thu, May 2, 2019 at 1:15 AM Charles Rene 
wrote:

> Hello,
>
> I'm having trouble using the Apache Ignite 2.7.0 Linux built ODBC driver.
> I'm running a .Net Core 2.2 console application in a Linux environment in
> Docker.
>
> The problem is that when I run a SELECT statement through .Net's
> System.Data.Odbc, I get back "bad data". It looks like a mismatch in
> encoding.
>
> The data looks like  "8\00\05\07\09\0d\09\08\0-\0" where as it should be "
> 80579d98-9010-4610-b12e-ed33ed7d3c62".
>
> Details about my investigation can be found here:
>
> https://stackoverflow.com/questions/55875927/apache-ignite-2-7-odbc-linux-bad-data-returned
>
>
> Any idea what the problem might be?
>
> Thank you,
> Charlie
>


Re: Failover in thin client mode

2019-04-26 Thread Igor Sapego
That's right. This IEP has been only implemented for C++ thin for now.

Best Regards,
Igor


On Fri, Apr 26, 2019 at 2:05 PM kcheng.mvp  wrote:

> Hi Igor,
>
> I just checked the jiras and found this IPE has not been implemented for
> *java thin client* yet ?
>
>
>
>
> https://issues.apache.org/jira/issues/?jql=project%20%3D%20Ignite%20AND%20labels%20IN%20(iep-23)%20ORDER%20BY%20status%20%20%20%20%20%20%20
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Failover in thin client mode

2019-04-25 Thread Igor Sapego
The point of "Best effort" is that we do not guarantee every requested
to be routed to the optimal node, we only apply our best effort to make
this happen.

No, cluster will NOT return a address list to the client upon handshake
because.

1. It may be not secure to connect to nodes, which user did not specified
in the connection list.
2. It is not always possible, as client may be in a different network than
server nodes, so cluster nodes do not necessary know IPs of nodes, which
are valid for the client.

Best Regards,
Igor


On Thu, Apr 25, 2019 at 7:25 PM Ken Cheng  wrote:

> I am still on the design phrase of go thin client. once it's ready I will
> share the link. thanks.
> Thanks,
> Ken Cheng
>
>
> On Thu, Apr 25, 2019 at 10:02 PM Igor Sapego  wrote:
>
>> Hello,
>>
>> Are you developing a Go thin client? Can you share a link?
>>
>> There is already one go client I'm aware of [1], is yours related somehow?
>>
>> As for your question, thin client is given list of IPs and ports by a
>> user. During the start,
>> or in background thin client tries to establish connection to all of
>> them. Upon connection,
>> during handshake, it find outs node ID and associates it with given
>> IP:port pair. Thin client
>> should not try to establish connection with any address, which is not
>> given by a user.
>>
>> Does it helps?
>>
>> [1] - https://github.com/amsokol/ignite-go-client
>>
>> Best Regards,
>> Igor
>>
>>
>> On Thu, Apr 25, 2019 at 12:17 PM kcheng.mvp  wrote:
>>
>>> Thank your information very much!
>>>
>>>
>>>
>>> --
>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>
>>


Re: Failover in thin client mode

2019-04-25 Thread Igor Sapego
Hello,

Are you developing a Go thin client? Can you share a link?

There is already one go client I'm aware of [1], is yours related somehow?

As for your question, thin client is given list of IPs and ports by a user.
During the start,
or in background thin client tries to establish connection to all of them.
Upon connection,
during handshake, it find outs node ID and associates it with given IP:port
pair. Thin client
should not try to establish connection with any address, which is not given
by a user.

Does it helps?

[1] - https://github.com/amsokol/ignite-go-client

Best Regards,
Igor


On Thu, Apr 25, 2019 at 12:17 PM kcheng.mvp  wrote:

> Thank your information very much!
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Java Thin Client TCP Connections

2019-03-27 Thread Igor Sapego
That's really weird. There should not be so much connections. Normally thin
client will open one TCP connection per node at max. In many cases, there
going to be only one connection.

Do you create IgniteClient in your application once, or do you start them
several
times? Could it be that your code are leaking IgniteClient instances?

Can you provide some minimal reproducer to us, so we can debug the issue?

Best Regards,
Igor


On Mon, Mar 25, 2019 at 11:19 PM Brent Williams 
wrote:

> All,
>
> I am running Apache Ingite 2.7.0. I have 3 nodes in my cluster, CPU,
> memory, GC all tuned properly. I have even adjusted file limit to 65k open
> connections. I have 8 client nodes that are connecting to the 3 node
> cluster and for the most part working fine, however, we see spikes in
> connections and we start to blow out the file limit and we get too many
> files open and all client nodes hang.
>
> When I check the connections per client on one of the server nodes, I am
> seeing 5500+ TCP connections established per host.  This is roughly 44,
> + . My question is what should the file limits be? Why so many TCP
> connections per host? How do we control this as it is causing our
> production cluster to hang.
>
> --Brent
>
>
>


Re: where can i find 2.7 nightly release build

2019-03-19 Thread Igor Sapego
You are welcome.

Best Regards,
Igor


On Tue, Mar 19, 2019 at 5:15 PM wt  wrote:

> Thanks Igor
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: ODBC Specified attribute is not supported

2019-03-19 Thread Igor Sapego
That's because Ignite's ODBC driver does not support all possible
connection/statement attributes.

You can try enabling ODBC logging [1], then repeat your actions and
send resulted logs to us, so we can see what is the attribute SQL server
tries to set that Ignite does not support.

[1] -
https://www.ibm.com/support/knowledgecenter/en/SSULQD_7.2.1/com.ibm.nz.datacon.doc/t_datacon_enabling_odbc_logging_win.html

Best Regards,
Igor


On Tue, Mar 19, 2019 at 5:20 PM wt  wrote:

> Is there a reason the following error is returned by the odbc driver
>
> OLE DB provider "MSDASQL" for linked server "IGNITE" returned message
> "Specified attribute is not supported."
>
> I am trying to query the odbc driver from SQL server with 2.7. I can see
> the
> table, the query returns empty columns and this error. Looking at the odbc
> code base this error originates from
>
>
> https://github.com/apache/ignite/blob/master/modules/platforms/cpp/odbc/src/connection.cpp
>
> /  case SQL_ATTR_AUTOCOMMIT:
> {
> SQLUINTEGER mode =
> static_cast(reinterpret_cast(value));
>
> if (mode != SQL_AUTOCOMMIT_ON && mode !=
> SQL_AUTOCOMMIT_OFF)
> {
>
> AddStatusRecord(SqlState::SHYC00_OPTIONAL_FEATURE_NOT_IMPLEMENTED,
> "Specified attribute is not supported.");
>
> return SqlResult::AI_ERROR;
> }
>
> autoCommit = mode == SQL_AUTOCOMMIT_ON;
>
> break;
> }
>
> default:
> {
>
> AddStatusRecord(SqlState::SHYC00_OPTIONAL_FEATURE_NOT_IMPLEMENTED,
> "Specified attribute is not supported.");
>
> return SqlResult::AI_ERROR;
> }
> }/
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: where can i find 2.7 nightly release build

2019-03-19 Thread Igor Sapego
Hi,

Here you go: [1]

If you need binary release:
1. Click [APACHE IGNITE NIGHTLY RELEASE] #2 :: Assemble Binaries
2. Choose any success release (latest at the top).
3. Click "Artifacts" tab.
4. Click on "apache-ignite-2.8.0.XXX-bin.zip" to download nightly binary
release.
You can also download only drivers, if you do not need the rest. Driver
installers
are located in platforms/cpp/bin/odbc.

[1] -
https://ci.ignite.apache.org/project.html?projectId=Releases_NightlyRelease&branch_Releases_NightlyRelease=


Best Regards,
Igor


On Tue, Mar 19, 2019 at 3:36 PM wt  wrote:

> i need to access the odbc driver and have had problems building on windows
> at
> work. Thanks in advanced
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: How to use atomic operations on C++ thin client?

2019-03-19 Thread Igor Sapego
Jack,

You can use pointer semantics [1] to differ nulls from zeroes. It won't
work for primitive types (as int), but it is a rare case, really, that your
value is a primitive type. And even if you want to use value, that only
contains single int it is simple enough to make a class-wrapper.

Here's how you use it:

IgniteClient client = IgniteClient::Start(cfg);

cache::CacheClient cache =
client.GetCache("cacheName");

ValueType* val = cache.Get(key);

if (val == nullptr)
{
...
}

// Do not forget to release memory.
delete val;

Also, you can use smart pointers to avoid manual memory management.
Also, it is possible specialize BinaryType for any wrapper class or class
template, for example boost::optional or similar.

[1] -
https://apacheignite-cpp.readme.io/docs/serialization#section-reading-and-writing-values

Best Regards,
Igor


On Mon, Mar 18, 2019 at 11:32 PM jackluo923 
wrote:

> Hi Igor,
>  I took a look at the master branch. I have couple questions.
>
> 1. For void getAndPutIfAbsent, the method has this comment:
> @param valOut Previously contained value regardless of whether put happened
> or not (null if there
>  * was no previous value).
>
> How do we differentiate if the two cases where we returned previous value
> of
> "0"(previous value is 0) vs a "null" (no previous value)? Is this a planned
> limitation of c++ thin-client?
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: How to compile 2.7 release cpp binaries on ubuntu 16.04

2019-03-18 Thread Igor Sapego
By  the way, since Ignite 2.8 Ignite is going to support both OpenSSL 1.0
and 1.1

Best Regards,
Igor


On Thu, Mar 14, 2019 at 12:18 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> You can do 'sudo make uninstall' instead of deleting headers manually.
> Otherwise, cheers!
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> ср, 13 мар. 2019 г. в 22:13, jackluo923 :
>
>> Hi Ilya,
>> I dug deeper after your response and found the root cause of the
>> error.
>>
>> Platform: Ubuntu 16.04
>> 1. Installed openssl 1.1.0h using binaries compiled from source (reason:
>> 16.04 does not provided any openssl 1.1 packages), then installed using
>> "make install" command.
>>
>> 2. Ubuntu 16.04 (Xenial) packages
>> - libssl1.0.0 (version: 1.0.2g-1ubuntu4.15)
>> - libssl-dev (version: 1.0.2g-1ubuntu4.15)
>> - openssl (version: 1.0.2g-1ubuntu4.15)
>> - no openssl 1.1 packages are available on ubuntu 16.04 thus not installed
>>
>> The root cause is due to Openssl 1.1 being installed from source by
>> following the openssl's default instructions (also installs development
>> header automatically). Even though only libssl-dev (openssl 1.0.2g)
>> package
>> is installed, the ignite's autoconfig will automatically default to 1.1.0h
>> headers.
>>
>> Fixes:
>> 1) Re-install openssl 1.1 without development header from source.
>> (documentation is scarce, not sure how it could be done)
>> 2) Delete openssl 1.1's development headers manually after install
>> 3) Upgrade to ubuntu 18.04 where libssl1.0.0-dev and libssl-dev (1.1)
>> development headers can be changed out easily. Openssl development header
>> ubuntu packages for v1.0 and v1.1 (install one, uninstalls the other) thus
>> preventing this problem from occurring.
>> 4) Manually provide openssl development binary and include paths when
>> building ignite.
>>
>>
>> TLTR: The problem is due to development header conflict. It's slightly
>> messy
>> to resolve the issue in Ubuntu 16.04. Easiest solution would be to upgrade
>> to ubuntu 18.04 and install openssl 1.0, 1.1 package, and development
>> header
>> version of your choosing suggested by Ilya. Development header version can
>> be easily switched via apt-get only in Ubuntu 18.04.
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>


Re: How to use atomic operations on C++ thin client?

2019-03-18 Thread Igor Sapego
Hi Jack,

Design document is mostly for developers, not for users. It shows current
state of the master branch, so not every feature listed there as supported
actually presents in any Ignite release. You can try naightly builds [1]
though,
if you want try some new features before they get into some release. Though
of course, nightly builds are not necessary stable.

[1] -
https://ci.ignite.apache.org/project.html?projectId=Releases_NightlyRelease&branch_Releases_NightlyRelease=


Best Regards,
Igor


On Fri, Mar 15, 2019 at 9:41 PM Павлухин Иван  wrote:

> Hi Jack,
>
> Should be included into next version [1]. Stay tuned.
>
> [1] https://issues.apache.org/jira/browse/IGNITE-9904
>
> пт, 15 мар. 2019 г. в 01:32, jackluo923 :
> >
> > After digging deeper, it appears that thin-client atomic cache
> operations are
> > not implemented. I have implemented and tested the atomic cache
> operations
> > in C++ thin-client locally and they appear to work correctly but I
> haven't
> > done any extensive testing. Is there any reason why atomic operations are
> > not available in c++ thin-client, but available in other languages?
> >
> >
> >
> >
> >
> > --
> > Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>
>
>
> --
> Best regards,
> Ivan Pavlukhin
>


Re: How to compile 2.7 release cpp binaries on ubuntu 16.04

2019-03-13 Thread Igor Sapego
Are you sure you don't have OpenSSL 1.1 installed?

Best Regards,
Igor


On Tue, Mar 12, 2019 at 7:18 PM jackluo923 
wrote:

> What is the specific SSL library version dependency to successfully compile
> the cpp binaries under Ubuntu 16.04. This particular dependency isn't
> mentioned anywhere in the DEVNotes.txt or other documentations.
>
> It seems like 1.0.2g-1ubuntu4.15 is incompatible on Ubuntu 16.04 with
> ignite's source code.
>
> build error message:
> make[3]: Entering directory
> '/tmp/apache-ignite-installation/apache-ignite-2.7.0-bin/platforms/cpp/thin-client'
>
>   CXX  src/impl/ssl/secure_socket_client.lo
> In file included from ./src/impl/ssl/ssl_bindings.h:21:0,
>  from src/impl/ssl/secure_socket_client.cpp:27:
> ./src/impl/ssl/ssl_bindings.h:135:28: error: expression list treated as
> compound expression in initializer [-fpermissive]
>  inline int SSL_library_init()
> ^
> In file included from src/impl/ssl/secure_socket_client.cpp:27:0:
> ./src/impl/ssl/ssl_bindings.h:136:17: error: expected ‘,’ or ‘;’ before ‘{’
> token
>  {
>  ^
> In file included from ./src/impl/ssl/ssl_bindings.h:21:0,
>  from src/impl/ssl/secure_socket_client.cpp:27:
> ./src/impl/ssl/ssl_bindings.h:144:29: error: variable or field
> ‘OPENSSL_init_ssl’ declared void
>  inline void SSL_load_error_strings()
>  ^
> src/impl/ssl/secure_socket_client.cpp: In static member function ‘static
> void* ignite::impl::thin::ssl::SecureSocketClient::MakeContext(const
> string&, const string&, const string&)’:
> src/impl/ssl/secure_socket_client.cpp:199:35: error:
> ‘ignite::impl::thin::ssl::OPENSSL_init_ssl’ cannot be used as a function
>  (void)SSL_library_init();
>^
> src/impl/ssl/secure_socket_client.cpp:201:29: error:
> ‘ignite::impl::thin::ssl::OPENSSL_init_ssl’ cannot be used as a function
>  SSL_load_error_strings();
>  ^
> src/impl/ssl/secure_socket_client.cpp:222:44: error: ‘SSL_CTRL_OPTIONS’ was
> not declared in this scope
>  ssl::SSL_CTX_ctrl(ctx, SSL_CTRL_OPTIONS, flags,
> NULL);
> ^~~~
> src/impl/ssl/secure_socket_client.cpp:222:44: note: suggested alternative:
> ‘SSL_CTRL_CHAIN’
>  ssl::SSL_CTX_ctrl(ctx, SSL_CTRL_OPTIONS, flags,
> NULL);
> ^~~~
> SSL_CTRL_CHAIN
> Makefile:617: recipe for target 'src/impl/ssl/secure_socket_client.lo'
> failed
> make[3]: *** [src/impl/ssl/secure_socket_client.lo] Error 1
> make[3]: Leaving directory
> '/tmp/apache-ignite-installation/apache-ignite-2.7.0-bin/platforms/cpp/thin-client'
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: How to compile 2.7 release cpp binaries on ubuntu 16.04

2019-03-13 Thread Igor Sapego
Also, note, that since Ignite 2.8 we are going to support OpenSSL 1.1 as
well as 1.0.

Best Regards,
Igor


On Wed, Mar 13, 2019 at 12:12 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> My recommendation is to uninstall openssl-dev (or openssl-devel) of 1.1.0
> and install that of 1.0.0.
>
> Then configure, etc.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> вт, 12 мар. 2019 г. в 21:55, jackluo923 :
>
>> Hi Ilya,
>> can you point me to some resource in how to point ./configure to the
>> openssl 1.0 install location? I am a newbie in configuring environments
>> for
>> C++ based projects.
>>
>> What I have tried so far:
>> a) ./configure --with-libssl-prefix=/usr/local/ssl
>>  - configure: WARNING: unrecognized options: --with-libssl-prefix
>> b) ./configure --with-ssl=/usr/local/ssl
>>  - configure: WARNING: unrecognized options: --with-ssl
>> c) in ./configure --help, there is a "-I flag" to specify headers in a non
>> standard directly
>>  - I am not sure if this is the properly route to take and I seem to
>> be
>> using it the wrong way
>>  - "./configure -I/usr/local/ssl" and "./configure -I /usr/local/ssl"
>>- both results to configure: error: unrecognized option:
>> `-I/usr/local/ssl'
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>


Re: C++ GetCompute() error

2019-02-12 Thread Igor Sapego
It's fine,

I'm glad it helped you.

Best Regards,
Igor


On Tue, Feb 12, 2019 at 6:23 PM F.D.  wrote:

> Yes Igor, you're right. It's a my fault.
>
> Thank you,
>F. D.
>
>
> Il giorno mar 12 feb 2019, 13:35 Igor Sapego  ha
> scritto:
>
>> Hi,
>>
>> This exception may happen when you try to register the same callback
>> several times. It should not happen when you call GetCompute().
>>
>> Best Regards,
>> Igor
>>
>>
>> On Tue, Feb 12, 2019 at 2:37 PM F.D.  wrote:
>>
>>> Hi igniters,
>>>
>>> I'm trying to port my code from 2.6 to 2.7. And now when I try to get a
>>> Compute (in C++) I got this error message:
>>> *Trying to register multiple PRC callbacks with the same ID. [type=4,
>>> id=94355077]*
>>>
>>> Can you help me, why I got this?
>>>
>>> Thanks,
>>>F.D.
>>>
>>


Re: C++ GetCompute() error

2019-02-12 Thread Igor Sapego
Hi,

This exception may happen when you try to register the same callback
several times. It should not happen when you call GetCompute().

Best Regards,
Igor


On Tue, Feb 12, 2019 at 2:37 PM F.D.  wrote:

> Hi igniters,
>
> I'm trying to port my code from 2.6 to 2.7. And now when I try to get a
> Compute (in C++) I got this error message:
> *Trying to register multiple PRC callbacks with the same ID. [type=4,
> id=94355077]*
>
> Can you help me, why I got this?
>
> Thanks,
>F.D.
>


Re: Ignite and dynamic linking

2019-01-30 Thread Igor Sapego
You should not call it before FreeLibrary(). Try calling it after.

Best Regards,
Igor


On Tue, Jan 29, 2019 at 5:02 PM F.D.  wrote:

> Hi Igor,
>
> thanks for your reply, I've added this code:
>
> Snippet
>
> void Ignition::DestroyJVM()
> {
>factoryLock.Enter();
>
>JniErrorInfo jniErr;
>
>SharedPointer ctx(JniContext::Create(0, 0, JniHandlers(), 
> &jniErr));
>
>IgniteError err;
>IgniteError::SetError(jniErr.code, jniErr.errCls, jniErr.errMsg, err);
>
>if(err.GetCode() == IgniteError::IGNITE_SUCCESS)
>   ctx.Get()->DestroyJvm();
>
>factoryLock.Leave();
> }
>
> And call it before the FreeLibrary(), now when I call the start I got a
> unknow error. Any ideas?
>
> Thanks,
>F.D.
>
>
> On Mon, Jan 28, 2019 at 5:08 PM Igor Sapego  wrote:
>
>> Hi,
>>
>> Currently, Ignite on start creates JVM instance internally, but
>> it never stops it. Also, it currently can not work with already started
>> JVM.
>>
>> So when you start Ignite the first time, it loads JVM, when you stop
>> and unload it, the JVM remains loaded in process memory. When
>> you start Ignite again, it discovers that JVM was already loaded, and
>> as it can not work with pre-loaded JVM, it just returns you the error.
>>
>> To solve the issue, the following ticket should be implemented [1], but
>> currently, it is not. As a workaround you may try to call
>> JNI_DestroyJavaVM() after you have unloaded Ignite, I'm not sure
>> of the result though. This is simply is not a use case we have tested.
>>
>> [1] - https://issues.apache.org/jira/browse/IGNITE-4618
>>
>> Best Regards,
>> Igor
>>
>>
>> On Mon, Jan 28, 2019 at 3:49 PM F.D.  wrote:
>>
>>> Hi Igniters,
>>> I'm trying to use Ignite in a dll (using c++) that is dinamically
>>> loaded. I wrapped the method start/end/... bihind a "c" pure interface that
>>> I export.
>>>
>>> It works quite well. I can call the LoadLibrary and start a Ignite node.
>>> I can stop it and restart it again smoothly.
>>>
>>> I've the problem when I LoadLibrary and then I call FreeLibrary (and
>>> until here it works), but when I try to LoadLibrary again and to start the
>>> node, I get the error: Failed to initialize JVM* [errCls=, errMsg=JVM
>>> already created.]*
>>>
>>> Do you any ideas why I got this error?
>>>
>>> Thanks,
>>>F.D.
>>>
>>


Re: Ignite and dynamic linking

2019-01-28 Thread Igor Sapego
Hi,

Currently, Ignite on start creates JVM instance internally, but
it never stops it. Also, it currently can not work with already started
JVM.

So when you start Ignite the first time, it loads JVM, when you stop
and unload it, the JVM remains loaded in process memory. When
you start Ignite again, it discovers that JVM was already loaded, and
as it can not work with pre-loaded JVM, it just returns you the error.

To solve the issue, the following ticket should be implemented [1], but
currently, it is not. As a workaround you may try to call
JNI_DestroyJavaVM() after you have unloaded Ignite, I'm not sure
of the result though. This is simply is not a use case we have tested.

[1] - https://issues.apache.org/jira/browse/IGNITE-4618

Best Regards,
Igor


On Mon, Jan 28, 2019 at 3:49 PM F.D.  wrote:

> Hi Igniters,
> I'm trying to use Ignite in a dll (using c++) that is dinamically loaded.
> I wrapped the method start/end/... bihind a "c" pure interface that I
> export.
>
> It works quite well. I can call the LoadLibrary and start a Ignite node. I
> can stop it and restart it again smoothly.
>
> I've the problem when I LoadLibrary and then I call FreeLibrary (and until
> here it works), but when I try to LoadLibrary again and to start the node,
> I get the error: Failed to initialize JVM* [errCls=, errMsg=JVM already
> created.]*
>
> Do you any ideas why I got this error?
>
> Thanks,
>F.D.
>


Re: How to use c++ client get cache data from java server

2019-01-23 Thread Igor Sapego
Hi,

BinaryObject in C++ is not the same thing as in Java right now.
Currently C++ client do not support "BinaryObject" construction
and access. You may now only operate on actual serializable
objects, for which BinaryObject class template has been specialized.

You may find details and examples on readme.io ([1] and [2]).

[1] - https://apacheignite-cpp.readme.io/docs/serialization
[2] -
https://apacheignite-cpp.readme.io/docs/cross-platform-interoperability

Best Regards,
Igor


On Wed, Jan 23, 2019 at 12:22 PM luodandan  wrote:

>  I am new to Ignite.
>
> Now, i want to load a CSV file into java server and access the cache using
> the C++ client. The example code is as below.
>
> Java Code
> CacheConfiguration cfg = new
> CacheConfiguration("binaryCache");
>
> // Sliding window of 1800 seconds.
> cfg.setExpiryPolicyFactory(FactoryBuilder.factoryOf(
> new CreatedExpiryPolicy(new Duration(SECONDS, 1800;
>
> IgniteCache binaryCache =
> ignite.getOrCreateCache(cfg);
> IgniteDataStreamer stmr =
> ignite.dataStreamer(binaryCache.getName());
>
> BinaryObjectBuilder builder = ignite.binary().builder("test");
> builder.setField("col1","luodan");
> builder.setField("col2",29);
> BinaryObject bObj = builder.build();
> stmr.addData(1L,bObj);
>
> C++ code
>Cache binaryCache = grid.GetCache BinaryObject>("binaryCache");
>BinaryObject obj = binaryCache.Get(1);
>
> However, there is a compile error
>
> error C2512: “ignite::binary::BinaryObject” do not has default-constructor
>
> How can i get the cache data from the java server using C++ client?
> can you give me a example?
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Introducing Typescript for the Node.js Client

2019-01-23 Thread Igor Sapego
Great job!

Forwarding to devlist.

Are there Node.js guys that can take a look?

Best Regards,
Igor


On Tue, Jan 22, 2019 at 10:47 PM thavlik 
wrote:

> https://github.com/thavlik/ignite/tree/master/modules/platforms/nodejs
>
> https://issues.apache.org/jira/browse/IGNITE-11032
>
> Please let me know if you have any issues with it. I've only put a couple
> hours of work into this, but it already functions as a drop-in
> replacement.
>
> Tom
>
> Mid Continent Controls, Inc.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Does Ignite message support C++?

2019-01-21 Thread Igor Sapego
Yes, thick client always sends requests to the "right" node that actually
contains data.

Best Regards,
Igor


On Mon, Jan 21, 2019 at 9:20 AM summasumma  wrote:

> Thanks Igor.
>
> One more clarification:
>
> Does Ignite client perform sharding by itself by selecting the
> node/partition across server cluster nodes for performing operations like
> Insert/update etc using some hash operation on the key locally? Or it
> connects to one of the nodes in the cluster and that server will redirect
> the client if that particular entry does not belong to the partition in
> that
> node?
>
> Please clarify.
>
> Thanks,
> ...summa
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Does Ignite message support C++?

2019-01-17 Thread Igor Sapego
No you should not have the same configs, but you need to have the same
configuration of the protocol, which is different for Java and C++ by
default
(I believe, you use Java server).

You may find details here [1].

[1] -
https://apacheignite-cpp.readme.io/docs/cross-platform-interoperability

Best Regards,
Igor


On Thu, Jan 17, 2019 at 1:00 PM summasumma  wrote:

> Thanks Igor.
>
> Yes it is trying to start in client mode now with correct file. My bad
> filename misspelled by a character.
>
> Now im getting following error:
> [09:55:28] REST protocols do not start on client node. To start the
> protocols on client node set '-DIGNITE_REST_START_ON_CLIENT=true' system
> property.
> [09:55:29,110][SEVERE][main][IgniteKernal] Failed to start manager:
> GridManagerAdapter [enabled=true,
> name=o.a.i.i.managers.discovery.GridDiscoveryManager]
> class org.apache.ignite.IgniteCheckedException: Failed to start SPI:
> TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000,
> marsh=JdkMarshaller
> [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@6c0d9d86],
> reconCnt=10, reconDelay=2000, maxAckTimeout=60, forceSrvMode=false,
> clientReconnectDisabled=false, internalLsnr=null]
> at
>
> org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:300)
> at
>
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:915)
> at
>
> org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1721)
> at
> org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1028)
> at
>
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2014)
> at
>
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1723)
> at
> org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1151)
> at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:649)
> at
>
> org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43)
> at
>
> org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:75)
> Caused by: class org.apache.ignite.spi.IgniteSpiException: Local node's
> binary configuration is not equal to remote node's binary configuration
> [locNodeId=3a0f06e7-b430-4e70-83cd-69d5067fb06f,
> rmtNodeId=de5d439d-bbfa-4446-aeaf-4beedb6c4953,
> locBinaryCfg={globIdMapper=org.apache.ignite.binary.BinaryBasicIdMapper,
> compactFooter=false, globSerializer=null}, rmtBinaryCfg=null]
> at
>
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:1874)
> at
>
> org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.body(ClientImpl.java:1771)
> at
> org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
>
>
> IS IT LIKE WE SHOULD HAVE EXACT SAME XML FILES with DISCOVERYSPI
> configuration having IPs of all the server and client nodes in it?
> Mine is:
>
> 
>  class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
> 
>
>
> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
> 
> 
> 10.42.27.121:47500..47509  --->
> this is server
> 10.42.27.131:47500..47509  --->
> this is another server
> 10.42.27.125:47500..47509
>  >
> this is c++ client im starting
> 
> 
>   
> 
> 
> 
>
>
> If this is the case what if i need to scale with another client in new IP
> to
> the cluster?
> Please clarify.
>
> Thanks,
> ...summa
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Does Ignite message support C++?

2019-01-17 Thread Igor Sapego
It should start in client mode. Make sure that the right configuration file
is used.

Best Regards,
Igor


On Thu, Jan 17, 2019 at 12:40 PM summasumma  wrote:

> Thanks Igor.
>
> I am trying to do an example putandget operation using the Ignite-c++
> client
> code from the following link:
> https://github.com/apache/ignite/tree/master/modules/platforms/cpp/examples
>
> ==
> Source code:
>
> https://github.com/apache/ignite/blob/master/modules/platforms/cpp/examples/put-get-example/src/put_get_example.cpp
>
> Snippet below:
> {
>IgniteConfiguration cfg;
>cfg.springCfgPath =
> "platforms/cpp/examples/put-get-example/config/example-cache.xml";
> try
> {
> // Start a node.
> Ignite grid = Ignition::Start(cfg);
>  
> }
> ===
> But when i run the above example, the code is always starting Ignite in
> server-mode eventhough the 'example-cache.xml' contains the following
> settings:
>
> 
>
> How can i start a Ignite c++ node and perform putget operation here?
>
> Please clarify.
>
> Thanks,
> ...summa
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Does Ignite message support C++?

2019-01-14 Thread Igor Sapego
Hi,

1. Async is not yet supported in C++ clients.

2. Continuous queries supported by thick C++ client.

3. Works through SQL, so supported by thick client.

4. SQL supported by thick client, and also planned for C++ thin client.

Best Regards,
Igor


On Mon, Jan 14, 2019 at 10:53 AM summasumma  wrote:

> hi all,
>
> Can you please clarify if Ignite C++ CLIENT(both thin and thick/normal)
> supports following:
>
> 1. Async read/insert/update/delete operations (from our application we will
> send a read request asynchronously, and once the Ignite server responds
> back
> we should get notification on the response)?
>
> 2. Continuous query support?
>
> 3. Secondary Index based creation/read/update support?
>
> 4. SQL support for all operations?
>
> Thanks in advance.
>
> Regards,
> ...summa
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Does Ignite message support C++?

2019-01-09 Thread Igor Sapego
That's right, Ignite C++ do not support messaging currently.

Best Regards,
Igor


On Tue, Jan 8, 2019 at 3:07 AM SamsonLai  wrote:

> I have an ignite cluster that running on Java, all nodes (Java) within the
> cluster can send and receive Ignite messages. Now, I have to create another
> client node by C++, I am using Ignite 2.7, but seems that Ignite C++ does
> not supports Ignite messages, right?
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: error: LNK2001: unresolved external symbol __imp_SHFileOperationW

2018-12-17 Thread Igor Sapego
Hello,

Note that in Ignite 2.7 only OpenSSL 1.0 is supported.

Now, for your issue. It's weird and I have never faced that one by myself,
but according to MSDN [1] you need to link to shell32.dll.

[1] -
https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-shfileoperationa

Best Regards,
Igor


On Sun, Dec 16, 2018 at 7:18 PM  wrote:

> Hi,
>
> I’m trying to get Ignite 2.7.0 to work with Qt5 in Qt Creator. I
> downloaded the 2.7 binary and unzipped it. I then compiled Ignite for C++
> in platforms\cpp\project\vs\ignite.sln . I managed to compile binary,
> common, core, ignite, jni with Visual Studio 2017 64bit. I think odbc was
> skipped and thin-client failed, because it couldn’t find openssl. I’m still
> working on that issue, as I can not get openssl to compile.
>
> In Qt5 I added:
>
> IGNITE_HOME = "C:/C++/libs/apache-ignite/2.7.0"
> JAVA_HOME = "C:/Program Files/Java/jdk1.8.0_152"
>
> INCLUDEPATH +=  "$$PROJECT_DIR/boost/boost_1_68_0" \ #Boost
> #"$$PROJECT_DIR/boost/boost_1_61_0" \ #
> "$$IGNITE_HOME/platforms/cpp/common/include" \
> "$$IGNITE_HOME/platforms/cpp/common/os/win/include" \
> "$$IGNITE_HOME/platforms/cpp/jni/include" \
> "$$IGNITE_HOME/platforms/cpp/jni/os/win/include" \
> "$$IGNITE_HOME/platforms/cpp/binary/include" \
> "$$IGNITE_HOME/platforms/cpp/core/include" \
> "$$JAVA_HOME/include" \
> "$$JAVA_HOME/include/win32"
>
> LIBS += -L"$$PROJECT_DIR/boost/boost_1_68_0/lib64-msvc-14.1" \
> #-L"$$PROJECT_DIR/boost/boost_1_61_0/lib64-msvc-12.0" \ #Boost #
> -L"$$IGNITE_HOME/platforms/cpp/project/vs/x64/Release" \
>
> "$$IGNITE_HOME/platforms/cpp/project/vs/x64/Release/ignite.binary.lib" \
>
> "$$IGNITE_HOME/platforms/cpp/project/vs/x64/Release/ignite.common.lib" \
>
> "$$IGNITE_HOME/platforms/cpp/project/vs/x64/Release/ignite.core.lib" \
>
> "$$IGNITE_HOME/platforms/cpp/project/vs/x64/Release/ignite.jni.lib" \
> "$$IGNITE_HOME/platforms/cpp/project/vs/x64/Release/ignite.lib"
>
> I also added ignite.core.dll and ignite.jni.dll to my build folder.
> However when I build the sample C++ code for First Ignite Data Grid
> Application from https://apacheignite-cpp.readme.io/docs/getting-started-1,
> I get the following error: ignite.common.lib(platform_utils.obj):-1: error:
> LNK2001: unresolved external symbol __imp_SHFileOperationW . Any idea how I
> can fix this? Thank you.
>
> Kind regards,
>
> Nick
>


Re: ODBC driver build error

2018-11-30 Thread Igor Sapego
You are right, this document needs update. I'll file
a ticket for this task.

Best Regards,
Igor


On Fri, Nov 30, 2018 at 5:53 AM Ray  wrote:

> Thank you for the reply Igor,
>
> After adding legacy_stdio_definitions.lib in the linker's input, I built
> the
> ODBC driver successfully.
>
> I want to build ODBC driver myself because I want to apply this ticket to
> Ignite 2.6 because 2.7 is not yet released.
>
> https://issues.apache.org/jira/browse/IGNITE-8930
>
> By the way, I followed the instructions in the
> modules/platforms/cpp/DEVNOTES.txt, I think this document should be
> updated.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: ODBC driver build error

2018-11-29 Thread Igor Sapego
By the way, you do know that there is a pre-built binary installer
in Ignite binary release, right? Or do you want to build ODBC by
yourself for some reason?

Best Regards,
Igor


On Thu, Nov 29, 2018 at 12:50 PM Igor Sapego  wrote:

> This is a known issue of broken backward compatibility of MSVC.
> See [1] for details and solution.
>
> [1] -
> https://apacheignite-sql.readme.io/docs/odbc-driver#section-building-on-windows
>
> Best Regards,
> Igor
>
>
> On Thu, Nov 29, 2018 at 9:22 AM Ray  wrote:
>
>> Hi Igor,
>>
>> Thanks for the reply.
>> I installed OpenSSL 1.0.2 instead, but there's another error.
>>
>> SeverityCodeDescription Project FileLine
>> Suppression State
>> Error   LNK1120 1 unresolved externals  odbc
>>
>> D:\ignite-ignite-2.6\modules\platforms\cpp\project\vs\Win32\Debug\ignite.odbc.dll
>> 1
>> Error   LNK2019 unresolved external symbol __vsnwprintf_s referenced in
>> function _StringVPrintfWorkerW@20   odbc
>>
>> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\project\vs\odbccp32.lib(dllload.obj)
>> 1
>>
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>


Re: ODBC driver build error

2018-11-29 Thread Igor Sapego
This is a known issue of broken backward compatibility of MSVC.
See [1] for details and solution.

[1] -
https://apacheignite-sql.readme.io/docs/odbc-driver#section-building-on-windows

Best Regards,
Igor


On Thu, Nov 29, 2018 at 9:22 AM Ray  wrote:

> Hi Igor,
>
> Thanks for the reply.
> I installed OpenSSL 1.0.2 instead, but there's another error.
>
> SeverityCodeDescription Project FileLine
> Suppression State
> Error   LNK1120 1 unresolved externals  odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\project\vs\Win32\Debug\ignite.odbc.dll
> 1
> Error   LNK2019 unresolved external symbol __vsnwprintf_s referenced in
> function _StringVPrintfWorkerW@20   odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\project\vs\odbccp32.lib(dllload.obj)
> 1
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Failed to read data from remote connection

2018-11-28 Thread Igor Sapego
Do you shut down C++ node properly prior killing the process?

Does this exceptions impacts cluster's functionality anyhow?

Best Regards,
Igor


On Wed, Nov 28, 2018 at 8:53 AM wangsan  wrote:

> As I restart cpp client many times concurrently ,may be zkcluster(ignite)
> has some node path has been closed.
> From cpp client logs ,
> I can see zkdiscovery watch  44 first,but the node has been closed
>
> watchPath=f78ec20a-5458-47b2-86e9-7b7ed0ee4227:0e508bf8-521f-4898-9b83-fc216b35601c:81|44
> About 30 seconds past,Received communication error resolve request
> Then it watch another path: 42
>
> watchPath=5cb0efb1-0d1b-4b54-a8b7-ac3414e7735f:23fb17f7-cdbd-4cee-991a-46041bb0fa26:81|42
> Then I don't why log "Start check connection process"?
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: ODBC driver build error

2018-11-28 Thread Igor Sapego
It seems like you are using OpenSSL 1.1, which is not yet supported.
You can use 1.0 instead for now.

Best Regards,
Igor


On Wed, Nov 28, 2018 at 11:53 AM Ray  wrote:

> I try to build ODBC driver on Windows Visual Studio 2017.
> I installed these dependencies
> Windows SDK 7.1
> JDK 8
> Win64 OpenSSL v1.1.1a from https://slproweb.com/products/Win32OpenSSL.html
>
> I set OPENSSL_HOME=C:\Program Files\OpenSSL-Win64
>
> When I try to build, there's these error logs.
>
> SeverityCodeDescription Project FileLine
> Suppression State
> Error   C7525   inline variables require at least '/std:c++17'  odbc
>
> d:\ignite-ignite-2.6\modules\platforms\cpp\odbc\include\ignite\odbc\ssl\ssl_bindings.h
> 133
> Error (active)  E0325   inline specifier allowed on function declarations
> only
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\include\ignite\odbc\ssl\ssl_bindings.h
> 133
> Error (active)  E0018   expected a ')'  odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\include\ignite\odbc\ssl\ssl_bindings.h
> 133
> Error (active)  E0065   expected a ';'  odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\include\ignite\odbc\ssl\ssl_bindings.h
> 134
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_set_tlsext_host_name_" odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 80
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_free_"
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 86
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_set_connect_state_"odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 91
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_free_"
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 97
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_get_peer_certificate"  odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 103
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "X509_free"
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 105
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_free_"
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 111
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_free_"
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 124
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_write_"odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 152
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_pending_"  odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 172
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSL_read_"
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 180
> Error (active)  E0109   expression preceding parentheses of apparent call
> must
> have (pointer-to-) function typeodbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 206
> Error (active)  E0109   expression preceding parentheses of apparent call
> must
> have (pointer-to-) function typeodbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 208
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "SSLv23_client_method_" odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 216
> Error (active)  E0020   identifier "SSL_CTRL_OPTIONS" is undefined
> odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 237
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "BIO_new_ssl_connect"   odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 292
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "BIO_set_nbio_" odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 301
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "BIO_set_conn_hostname_"odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 315
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "BIO_free_all"  odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 320
> Error (active)  E0135   namespace "ignite::odbc::ssl" has no member
> "BIO_get_ssl_"  odbc
>
> D:\ignite-ignite-2.6\modules\platforms\cpp\odbc\src\ssl\secure_socket_client.cpp
> 326

Re: Failed to read data from remote connection

2018-11-27 Thread Igor Sapego
Can you explain your case in more detail? I'm not quite
understand what the problem is.

Best Regards,
Igor


On Tue, Nov 27, 2018 at 1:27 PM wangsan  wrote:

> When client (c++ node) restart mulit times,
> The server and other client will throw this  excption
>
>  ERROR o.a.i.s.c.tcp.TcpCommunicationSpi  - Failed to read data from remote
> connection (will wait for 2000ms).
> org.apache.ignite.IgniteCheckedException: Failed to select events on
> selector.
> at
>
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2135)
> at
>
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1764)
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.nio.channels.ClosedChannelException: null
> at
>
> java.nio.channels.spi.AbstractSelectableChannel.register(AbstractSelectableChannel.java:197)
> at
>
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:1958)
> ... 3 common frames omitted
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Invalid handshake message

2018-11-22 Thread Igor Sapego
Or do you use one of the thin clients? Can you specify which one?

Best Regards,
Igor


On Thu, Nov 22, 2018 at 12:54 PM Igor Sapego  wrote:

> Hi,
>
> Do you use ODBC driver for connection?
>
> Best Regards,
> Igor
>
>
> On Wed, Nov 21, 2018 at 9:45 PM daya airody  wrote:
>
>> We deployed Ignite on AWS.We have a single node cluster to begin with. Our
>> Application is connecting as client.
>>
>> When I access one of the endpoints of our application, it is being
>> intercepted by the GridWorker. GridWorker is throwing "Invalid handshake
>> message" message.
>>
>> How to disable this GridWorker?
>>
>> Appreciate any help.
>>
>> ignite server log --
>>
>> P[18:29:30] To start Console Management & Monitoring run
>> ignitevisorcmd.{sh|bat}
>> [18:29:30]
>> G[18:29:30] Ignite node started OK (id=94891bce, instance name=pt-grid)
>> ^[18:29:30] Topology snapshot [ver=1, servers=1, clients=0, CPUs=2,
>> offheap=1.6GB, heap=1.0GB]
>> U[18:29:30] ^-- Node [id=94891BCE-B34B-48BE-81EF-699AF911FE80,
>> clusterState=ACTIVE]
>> $[18:29:30] Data Regions Configured:
>> Y[18:29:30] ^-- default [initSize=256.0 MiB, maxSize=1.6 GiB,
>> persistenceEnabled=false]
>> ^[18:30:13] Topology snapshot [ver=2, servers=1, clients=1, CPUs=4,
>> offheap=1.6GB, heap=3.7GB]
>> U[18:30:13] ^-- Node [id=94891BCE-B34B-48BE-81EF-699AF911FE80,
>> clusterState=ACTIVE]
>> $[18:30:13] Data Regions Configured:
>> Y[18:30:13] ^-- default [initSize=256.0 MiB, maxSize=1.6 GiB,
>> persistenceEnabled=false]
>>
>>
>> --application log -
>> 2018-11-21_10:30:59.711 PARTNERTAP-REPORTS
>> [grid-nio-worker-client-listener-1-#31%pt-grid%] ERROR
>> org.apache.ignite.internal.processors.odbc.ClientListenerProcessor -
>> Closing
>> NIO session because of unhandled exception.
>> Dorg.apache.ignite.IgniteCheckedException: Invalid handshake message
>> z at
>>
>> org.apache.ignite.internal.processors.odbc.ClientListenerNioServerBuffer.read(ClientListenerNioServerBuffer.java:115)
>> y at
>>
>> org.apache.ignite.internal.processors.odbc.ClientListenerBufferedParser.decode(ClientListenerBufferedParser.java:60)
>> y at
>>
>> org.apache.ignite.internal.processors.odbc.ClientListenerBufferedParser.decode(ClientListenerBufferedParser.java:40)
>> j at
>>
>> org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:114)
>> s at
>>
>> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
>> l at
>>
>> org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3490)
>> j at
>>
>> org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
>> u at
>>
>> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1113)
>> at
>>
>> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2339)
>> t at
>>
>> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2110)
>> l at
>>
>> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1764)
>> O at
>> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>> * at java.lang.Thread.run(Thread.java:748)
>> 2018-11-21_10:31:14.955 PARTNERTAP-REPORTS
>> [grid-timeout-worker-#23%pt-grid%] INFO
>> org.apache.ignite.internal.IgniteKernal%pt-grid -
>> CMetrics for local node (to disable set 'metricsLogFrequency' to 0)
>> > ^-- Node [id=3edb3ed7, name=pt-grid, uptime=00:01:00.003]
>> ) ^-- H/N/C [hosts=2, nodes=2, CPUs=4]
>> + ^-- CPU [cur=0.33%, avg=51.29%, GC=0%]
>>   ^-- PageMemory [pages=0]
>> 5 ^-- Heap [used=1532MB, free=43.89%, comm=1979MB]
>> 4 ^-- Non heap [used=140MB, free=-1%, comm=144MB]
>> ) ^-- Outbound messages queue [size=0]
>> 7 ^-- Public thread pool [active=0, idle=0, qSize=0]
>> 7 ^-- System thread pool [active=0, idle=8, qSize=0]
>>
>>
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>


Re: Invalid handshake message

2018-11-22 Thread Igor Sapego
Hi,

Do you use ODBC driver for connection?

Best Regards,
Igor


On Wed, Nov 21, 2018 at 9:45 PM daya airody  wrote:

> We deployed Ignite on AWS.We have a single node cluster to begin with. Our
> Application is connecting as client.
>
> When I access one of the endpoints of our application, it is being
> intercepted by the GridWorker. GridWorker is throwing "Invalid handshake
> message" message.
>
> How to disable this GridWorker?
>
> Appreciate any help.
>
> ignite server log --
>
> P[18:29:30] To start Console Management & Monitoring run
> ignitevisorcmd.{sh|bat}
> [18:29:30]
> G[18:29:30] Ignite node started OK (id=94891bce, instance name=pt-grid)
> ^[18:29:30] Topology snapshot [ver=1, servers=1, clients=0, CPUs=2,
> offheap=1.6GB, heap=1.0GB]
> U[18:29:30] ^-- Node [id=94891BCE-B34B-48BE-81EF-699AF911FE80,
> clusterState=ACTIVE]
> $[18:29:30] Data Regions Configured:
> Y[18:29:30] ^-- default [initSize=256.0 MiB, maxSize=1.6 GiB,
> persistenceEnabled=false]
> ^[18:30:13] Topology snapshot [ver=2, servers=1, clients=1, CPUs=4,
> offheap=1.6GB, heap=3.7GB]
> U[18:30:13] ^-- Node [id=94891BCE-B34B-48BE-81EF-699AF911FE80,
> clusterState=ACTIVE]
> $[18:30:13] Data Regions Configured:
> Y[18:30:13] ^-- default [initSize=256.0 MiB, maxSize=1.6 GiB,
> persistenceEnabled=false]
>
>
> --application log -
> 2018-11-21_10:30:59.711 PARTNERTAP-REPORTS
> [grid-nio-worker-client-listener-1-#31%pt-grid%] ERROR
> org.apache.ignite.internal.processors.odbc.ClientListenerProcessor -
> Closing
> NIO session because of unhandled exception.
> Dorg.apache.ignite.IgniteCheckedException: Invalid handshake message
> z at
>
> org.apache.ignite.internal.processors.odbc.ClientListenerNioServerBuffer.read(ClientListenerNioServerBuffer.java:115)
> y at
>
> org.apache.ignite.internal.processors.odbc.ClientListenerBufferedParser.decode(ClientListenerBufferedParser.java:60)
> y at
>
> org.apache.ignite.internal.processors.odbc.ClientListenerBufferedParser.decode(ClientListenerBufferedParser.java:40)
> j at
>
> org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:114)
> s at
>
> org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
> l at
>
> org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3490)
> j at
>
> org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
> u at
>
> org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1113)
> at
>
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2339)
> t at
>
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2110)
> l at
>
> org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1764)
> O at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> * at java.lang.Thread.run(Thread.java:748)
> 2018-11-21_10:31:14.955 PARTNERTAP-REPORTS
> [grid-timeout-worker-#23%pt-grid%] INFO
> org.apache.ignite.internal.IgniteKernal%pt-grid -
> CMetrics for local node (to disable set 'metricsLogFrequency' to 0)
> > ^-- Node [id=3edb3ed7, name=pt-grid, uptime=00:01:00.003]
> ) ^-- H/N/C [hosts=2, nodes=2, CPUs=4]
> + ^-- CPU [cur=0.33%, avg=51.29%, GC=0%]
>   ^-- PageMemory [pages=0]
> 5 ^-- Heap [used=1532MB, free=43.89%, comm=1979MB]
> 4 ^-- Non heap [used=140MB, free=-1%, comm=144MB]
> ) ^-- Outbound messages queue [size=0]
> 7 ^-- Public thread pool [active=0, idle=0, qSize=0]
> 7 ^-- System thread pool [active=0, idle=8, qSize=0]
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: odbc 2.7 columns issue

2018-10-25 Thread Igor Sapego
Ok,

This is an another bug, related to escaped table names. See [1].

I'm working on it currently. Meanwhile you can use tables without
underscores in names as a workaround.

[1] - https://issues.apache.org/jira/browse/IGNITE-10009

Best Regards,
Igor


On Thu, Oct 25, 2018 at 10:13 AM wt  wrote:

> hi
>
> here is the odbc log file
>
> odbc.log
> 
>
> My server configuration
>
>xmlns="http://ignite.apache.org/schema/dotnet/IgniteConfigurationSection";>
> 
>   
> 
>   127.0.0.1:47500..47509
> 
>   
> 
> 
>maxSize="124288000"/>
>   
>  persistenceEnabled="true" maxSize="524288000" evictionThreshold="0.85"  />
>  maxSize="524288000" evictionThreshold="0.9"/>
>   
> 
>   
>
>
> i have 1 table i am trying to view
>
> {
>   "tablename": "ESG_Focus",
>   "fields": [
> {
>   "name": "COMPANYID",
>   "datatype": "java.lang.Integer"
> },
> {
>   "name": "ESG_FOCUS_ITEM",
>   "datatype": "java.lang.String"
> },
> {
>   "name": "ESG_FOCUS_VALUE",
>   "datatype": "java.lang.String"
> },
> {
>   "name": "ID",
>   "datatype": "java.util.UUID"
> },
> {
>   "name": "RECORD_VALID_FROM",
>   "datatype": "java.sql.Timestamp"
> },
> {
>   "name": "RECORD_VALID_TO",
>   "datatype": "java.sql.Timestamp"
> }
>   ],
>   "indexinfo": []
> }
>
>
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: odbc 2.7 columns issue

2018-10-24 Thread Igor Sapego
Hi,

Can you share an ODBC log please?

Best Regards,
Igor


On Wed, Oct 24, 2018 at 5:59 PM wt  wrote:

> Hi
>
> Thank you for fixing the bug where in Excel i was not able to see the
> tables. I can now however there are no columns visible and it gives an
> error
> that the data source did not return any columns. So it is a bit better that
> we can see the tables but we still cannot browse them and have to run a
> select on the table to get the data back. I tried to get an odbc log but
> nothing is logged. here is a screenshot 2018-10-24_15-58-35.png
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t1892/2018-10-24_15-58-35.png>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: ignite odbc build error

2018-10-24 Thread Igor Sapego
No, I've never seen this error before. Seems like
some issue in configuration of your OS.

Do you have pkg-config installed?

Best Regards,
Igor


On Wed, Oct 24, 2018 at 2:17 PM wt  wrote:

> those errors are gone but it looks like some ubuntu issue is now a problem.
> Have you seen this before?
>
> ubuntu@ip-10-112-47-3:/ignite2.7/ignite/modules/platforms/cpp$ libtoolize
> &&
> aclocal && autoheader && automake --add-missing && autoreconf ./configure
> --enable-odbc --disable-node --disable-core
> Useless use of /d modifier in transliteration operator at
> /usr/share/automake-1.9/Automake/Wrap.pm line 60.
> autoreconf: 'configure.ac' or 'configure.in' is required
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: ignite odbc build error

2018-10-24 Thread Igor Sapego
Try removing AM_PROG_AR as well. I will fix the issue in future.


Best Regards,
Igor


On Wed, Oct 24, 2018 at 1:41 PM wt  wrote:

> Hi Igor
>
> *I tried as a standard user and i get this*
>
> ubuntu@ip-10-112-47-3:/ignite2.7/ignite/modules/platforms/cpp$  libtoolize
> && aclocal && autoheader && automake --add-missing && autoreconf
> ./configure.ac --enable-odbc --disable-node --disable-core
> aclocal:configure.ac:32: warning: macro `AM_SILENT_RULES' not found in
> library
> aclocal:configure.ac:36: warning: macro `AM_PROG_AR' not found in library
> Useless use of /d modifier in transliteration operator at
> /usr/share/automake-1.9/Automake/Wrap.pm line 60.
> aclocal:configure.ac:32: warning: macro `AM_SILENT_RULES' not found in
> library
> aclocal:configure.ac:36: warning: macro `AM_PROG_AR' not found in library
> configure.ac:32: error: possibly undefined macro: AM_SILENT_RULES
>   If this token and others are legitimate, please use m4_pattern_allow.
>   See the Autoconf documentation.
> configure.ac:36: error: possibly undefined macro: AM_PROG_AR
> autoreconf: /usr/bin/autoconf failed with exit status: 1
>
>
>
> *I then tried removing that line from the file and i get this*
>
> ubuntu@ip-10-112-47-3:/ignite2.7/ignite/modules/platforms/cpp$ libtoolize
> &&
> aclocal && autoheader && automake --add-missing && autoreconf ./
> configure.ac
> --enable-odbc --disable-node --disable-core
> aclocal:configure.ac:36: warning: macro `AM_PROG_AR' not found in library
> Useless use of /d modifier in transliteration operator at
> /usr/share/automake-1.9/Automake/Wrap.pm line 60.
> aclocal:configure.ac:36: warning: macro `AM_PROG_AR' not found in library
> configure.ac:36: error: possibly undefined macro: AM_PROG_AR
>   If this token and others are legitimate, please use m4_pattern_allow.
>   See the Autoconf documentation.
> autoreconf: /usr/bin/autoconf failed with exit status: 1
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: ignite odbc build error

2018-10-24 Thread Igor Sapego
It is strongly not recommended to run build by the root.
This may be a cause of the issue.

If building without from other user won't work, try removing
the following line in configure.ac:

AM_SILENT_RULES([yes])

Let me know if this works. I need to find the root cause
of the issue.

Best Regards,
Igor


On Wed, Oct 24, 2018 at 1:09 PM wt  wrote:

> i am trying to build the 2.7 odbc driver and i am getting an error. I am
> using ubuntu 14
>
> root@ip-10-112-47-3:/ignite2.7/ignite/modules/platforms/cpp# ls
> aclocal.m4  config.sub   cpp.dxg   jni missing
> thin-client
> autom4te.cache  configuredepcomp   ltmain.sh   odbc
> thin-client-test
> binary  configure.ac DEVNOTES.txt  m4  odbc-test
> common  configure.acrel  examples  Makefile.am project
> config.guesscore igniteMakefile.amrel  README.md
> config.h.in core-testinstall-shMakefile.in README.txt
>
>
> root@ip-10-112-47-3:/ignite2.7/ignite/modules/platforms/cpp# libtoolize &&
> aclocal && autoheader && automake --add-missing && autoreconf ./
> configure.ac
> --enable-odbc --disable-node --disable-core
> aclocal:configure.ac:32: warning: macro `AM_SILENT_RULES' not found in
> library
> aclocal:configure.ac:36: warning: macro `AM_PROG_AR' not found in library
> Useless use of /d modifier in transliteration operator at
> /usr/share/automake-1.9/Automake/Wrap.pm line 60.
> aclocal:configure.ac:32: warning: macro `AM_SILENT_RULES' not found in
> library
> aclocal:configure.ac:36: warning: macro `AM_PROG_AR' not found in library
> configure.ac:32: error: possibly undefined macro: AM_SILENT_RULES
>   If this token and others are legitimate, please use m4_pattern_allow.
>   See the Autoconf documentation.
> configure.ac:36: error: possibly undefined macro: AM_PROG_AR
> autoreconf: /usr/bin/autoconf failed with exit status: 1
> root@ip-10-112-47-3:/ignite2.7/ignite/modules/platforms/cpp#
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: where to download 2.7 source

2018-10-24 Thread Igor Sapego
Hello,

2.7 is not released yet, but you can get code from git repository
from the ignite-2.7 branch. Note however that there are still some
issues/missing features in this branch. You can see the current
state of the release in the appropriate thread on the devlist.

[1] - https://github.com/apache/ignite/tree/ignite-2.7

Best Regards,
Igor


On Wed, Oct 24, 2018 at 10:57 AM wt  wrote:

> I am doing a demo to our COO next week and part of this demo is excel
> ignite
> odbc which in 2.6 doesn't allow tables to be browsed see the following jira
>
> https://issues.apache.org/jira/browse/IGNITE-9891
>
> anyway I am struggling to find if there is an available source with the
> latest builds to test.
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: odbc caches - cannot browse

2018-10-17 Thread Igor Sapego
The issue is fixed and is in master already.

You can wait for Ignite 2.7 release or check that the issue is
resolved with nightly release [1]

[1] -
https://ci.ignite.apache.org/project.html?projectId=Releases_NightlyRelease

Best Regards,
Igor


On Tue, Oct 16, 2018 at 10:42 AM wt  wrote:

> Thank you Igor
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: odbc caches - cannot browse

2018-10-15 Thread Igor Sapego
It looks like an error. I filed a ticket [1]. I'll try to fit to to 2.7

[1] - https://issues.apache.org/jira/browse/IGNITE-9891

Best Regards,
Igor


On Mon, Oct 15, 2018 at 10:46 AM wt  wrote:

> here is the log file generated when opening a new odbc connection to ignite
> in excel.
>
> odbc3.log
> 
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: odbc caches - cannot browse

2018-10-10 Thread Igor Sapego
Can you please collect and share logs with us?

You can find instructions on how to enable ODBC
log for example here: [1]

[1] -
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=BGOD_logging_logwin

Best Regards,
Igor


On Wed, Oct 10, 2018 at 5:46 PM wt  wrote:

> i would love some guidance on this. i have the 2.6 odbc setup and i can
> query
> it in excel 2016 but only if i manually type in the query. Excel won't show
> any of the tables like you would typically expect
>
> odbc connection is not configured to use a specific cache and no security
> is
> configured
>
>
> here is an image that shows it has connected but when i try click the
> dropdown next to the connection it shows nothing.  odbc.png
> 
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: cache doesn't exist

2018-09-12 Thread Igor Sapego
Hi,

Did your thick .net client connected to the cluster?
It should be visible in server node's logs.

Best Regards,
Igor


On Wed, Sep 12, 2018 at 1:58 PM Som Som <2av10...@gmail.com> wrote:

> the cache names list is empty then i call the method of non thin client
> butmy TestCache is stil exists and i can see it under the thin client. i
> cant see the cache from NON thin client if it is created from thin client.
>
> ср, 12 сент. 2018 г., 13:29 Evgenii Zhuravlev :
>
>> Hi,
>>
>> You can always get the list of the all caches in cluster using
>> Ignite.cacheNames() method.
>>
>> Evgenii
>>
>> ср, 12 сент. 2018 г. в 13:26, Som Som <2av10...@gmail.com>:
>>
>>> Hello
>>>
>>>
>>>
>>> I created new cache using thin .net client:
>>>
>>>
>>>
>>> public class TestEntity
>>>
>>> {
>>>
>>> public string ValueString { get; set; }
>>>
>>>
>>>
>>> public DateTime ValueDateTime { get; set; }
>>>
>>> }
>>>
>>>
>>>
>>> class Program
>>>
>>> {
>>>
>>> static void Main(string[] args)
>>>
>>> {
>>>
>>> var ignite = Ignition.StartClient(new
>>> IgniteClientConfiguration
>>>
>>> {
>>>
>>> Host = "127.0.0.1"
>>>
>>> ,
>>>
>>> BinaryConfiguration = newApache.Ignite.Core.Binary.
>>> BinaryConfiguration { Serializer = new Apache.Ignite.Core.Binary.
>>> BinaryReflectiveSerializer { ForceTimestamp = true } }
>>>
>>> });
>>>
>>>
>>>
>>> var queryEntity = new QueryEntity();
>>>
>>> queryEntity.KeyTypeName =typeof(int).FullName;
>>>
>>> queryEntity.KeyType = typeof(int);
>>>
>>>
>>>
>>> queryEntity.ValueTypeName =typeof(TestEntity).FullName;
>>>
>>> queryEntity.ValueType = typeof(TestEntity);
>>>
>>>
>>>
>>> queryEntity.Fields = new QueryField[]
>>>
>>> { new QueryField("ValueString", typeof(string))
>>>
>>> , new QueryField("ValueDateTime",typeof(DateTime))
>>>
>>> };
>>>
>>>
>>>
>>> var cache = ignite.GetOrCreateCache(
>>>
>>>newCacheClientConfiguration(
>>> "TestEntity", queryEntity) { SqlSchema = "PUBLIC" });
>>>
>>>
>>>
>>>
>>>
>>> cache.Put(1, new TestEntity { ValueString ="test",
>>> ValueDateTime = DateTime.UtcNow });
>>>
>>>
>>>
>>> ignite.Dispose();
>>>
>>> }
>>>
>>> }
>>>
>>>
>>>
>>> Then i tried  to get this cache using typical .net client but instead of
>>> cache I got an error “Additional information: Cache doesn't exist:
>>> TestEntity”:
>>>
>>>
>>>
>>> class Program
>>>
>>> {
>>>
>>> static void Main(string[] args)
>>>
>>> {
>>>
>>> var ignite = Ignition.Start(newIgniteConfiguration
>>>
>>> {
>>>
>>> DiscoverySpi = new TcpDiscoverySpi
>>>
>>> {
>>>
>>> IpFinder = new TcpDiscoveryStaticIpFinder
>>>
>>> {
>>>
>>> Endpoints = new[] { "127.0.0.1" }
>>>
>>> }
>>>
>>> }
>>>
>>> });
>>>
>>>
>>>
>>>
>>>
>>> var cache = ignite.GetCache("TestEntity");
>>>
>>>
>>>
>>> ignite.Dispose();
>>>
>>> }
>>>
>>> }
>>>
>>>
>>>
>>> How can I get a cache correctly?
>>>
>>


Re: Ignite Thin Client Continuous Query

2018-09-11 Thread Igor Sapego
Guys,

Personally, I do not see any problems, why we can not implement
Continuous Queries for thin clients. This will require a decent amount
of work, and will not give such  strong guaranties as thick clients
give (for example, on server crash thin client will get an exception and
will need to re-register listener once again), but to me it seems totally
implementable.

Val,

Why do you think that such features are unlikely to appear in thin clients?

Best Regards,
Igor


On Tue, Sep 11, 2018 at 3:07 PM Alexey Kuznetsov 
wrote:

>
> Gordon,
>
> How about to start several client nodes "near" to cluster and use them as
> "proxies" for your desktop GUI apps?
> You may write some code that will push data from client node to you GUI
> app.
> This will require some coding of course.
>
> --
> Alexey Kuznetsov
>


Re: How to create tables with JDBC, read with ODBC?

2018-09-11 Thread Igor Sapego
Nice to hear.

Please, keep us updated about what QLIK thinks about the issue.

Thank you in advance

Best Regards,
Igor


On Mon, Sep 10, 2018 at 10:50 PM limabean  wrote:

> Thank you very much for the thorough discussion/explanation and pending fix
> for public schemas.  Much appreciated !
>
> As an aside, I also contacted QLIK to see if they will fix their product
> behavior, which does not seem correct to me either.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: How to create tables with JDBC, read with ODBC?

2018-09-10 Thread Igor Sapego
I've filed a ticket: [1]

[1] - https://issues.apache.org/jira/browse/IGNITE-9515

Best Regards,
Igor


On Mon, Sep 10, 2018 at 2:56 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> Yes, I'm pretty confident that PUBLIC should work without quotes. I'm even
> not sure that it would work even with ordinary double quotes set.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> пн, 10 сент. 2018 г. в 14:28, Igor Sapego :
>
>> Ilya,
>>
>> If we won't bother with quotes, then many other tools will stop working,
>> as cache-names-schemas MUST be quoted, but they won't be. By the way,
>> even QLIK will not work with any other schema, except for PUBLIC.
>>
>> So for now, what I propose is not apply quotes to PUBLIC schema. This is
>> the only fix I can see here now.
>>
>> Best Regards,
>> Igor
>>
>>
>> On Fri, Sep 7, 2018 at 4:45 PM Ilya Kasnacheev 
>> wrote:
>>
>>> Maybe we shouldn't bother to quote schemas, assuming that it's the duty
>>> of client?
>>>
>>> Unfortunately after reading ODBC docs I have no idea, but there's no
>>> hints that the result will be quoted.
>>>
>>> Regards,
>>> --
>>> Ilya Kasnacheev
>>>
>>>
>>> пт, 7 сент. 2018 г. в 15:38, Igor Sapego :
>>>
>>>> Well, ODBC applies quotes to all schemas. It makes sense to
>>>> check and not apply quotes to PUBLIC, but this won't help in
>>>> all other cases, when cache-name-schema is used.
>>>>
>>>> Best Regards,
>>>> Igor
>>>>
>>>>
>>>> On Fri, Sep 7, 2018 at 2:13 PM Ilya Kasnacheev <
>>>> ilya.kasnach...@gmail.com> wrote:
>>>>
>>>>> Hello!
>>>>>
>>>>> It's actually very strange that we have quotes around PUBLIC since
>>>>> it's supposed to be used quote-free. I will take a look.
>>>>>
>>>>> Regards,
>>>>>
>>>>> --
>>>>> Ilya Kasnacheev
>>>>>
>>>>>
>>>>> пт, 7 сент. 2018 г. в 14:07, Igor Sapego :
>>>>>
>>>>>> It happens, because ODBC returns schema name in quotes,
>>>>>> so seems like QLIK adds its own quotes around it, as it encounters
>>>>>> non standard characters (quotes).
>>>>>>
>>>>>> I think, it is a QLIK's error, as our ODBC driver explicitly states,
>>>>>> that no
>>>>>> additional quotes should be used around identifiers. And even if it
>>>>>> choose
>>>>>> to apply quotes to "PUBLIC" result obviously should not be a
>>>>>> ""PUBLIC"".
>>>>>>
>>>>>>
>>>>>> Best Regards,
>>>>>> Igor
>>>>>>
>>>>>>
>>>>>> On Thu, Sep 6, 2018 at 6:43 PM limabean  wrote:
>>>>>>
>>>>>>> Although I specify lower case public in the odbc definition in
>>>>>>> Windows 10,
>>>>>>> the QLIK BI application, on its ODBC connection page, forces an
>>>>>>> upper case
>>>>>>> "PUBLIC" as you can see in the screen shot, and as far as I can tell
>>>>>>> there
>>>>>>> are no options to change that.
>>>>>>>
>>>>>>> QlikOdbcPanel.png
>>>>>>> <
>>>>>>> http://apache-ignite-users.70518.x6.nabble.com/file/t361/QlikOdbcPanel.png>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>>>>>
>>>>>>


Re: How to create tables with JDBC, read with ODBC?

2018-09-10 Thread Igor Sapego
Ilya,

If we won't bother with quotes, then many other tools will stop working,
as cache-names-schemas MUST be quoted, but they won't be. By the way,
even QLIK will not work with any other schema, except for PUBLIC.

So for now, what I propose is not apply quotes to PUBLIC schema. This is
the only fix I can see here now.

Best Regards,
Igor


On Fri, Sep 7, 2018 at 4:45 PM Ilya Kasnacheev 
wrote:

> Maybe we shouldn't bother to quote schemas, assuming that it's the duty of
> client?
>
> Unfortunately after reading ODBC docs I have no idea, but there's no hints
> that the result will be quoted.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> пт, 7 сент. 2018 г. в 15:38, Igor Sapego :
>
>> Well, ODBC applies quotes to all schemas. It makes sense to
>> check and not apply quotes to PUBLIC, but this won't help in
>> all other cases, when cache-name-schema is used.
>>
>> Best Regards,
>> Igor
>>
>>
>> On Fri, Sep 7, 2018 at 2:13 PM Ilya Kasnacheev 
>> wrote:
>>
>>> Hello!
>>>
>>> It's actually very strange that we have quotes around PUBLIC since it's
>>> supposed to be used quote-free. I will take a look.
>>>
>>> Regards,
>>>
>>> --
>>> Ilya Kasnacheev
>>>
>>>
>>> пт, 7 сент. 2018 г. в 14:07, Igor Sapego :
>>>
>>>> It happens, because ODBC returns schema name in quotes,
>>>> so seems like QLIK adds its own quotes around it, as it encounters
>>>> non standard characters (quotes).
>>>>
>>>> I think, it is a QLIK's error, as our ODBC driver explicitly states,
>>>> that no
>>>> additional quotes should be used around identifiers. And even if it
>>>> choose
>>>> to apply quotes to "PUBLIC" result obviously should not be a ""PUBLIC"".
>>>>
>>>>
>>>> Best Regards,
>>>> Igor
>>>>
>>>>
>>>> On Thu, Sep 6, 2018 at 6:43 PM limabean  wrote:
>>>>
>>>>> Although I specify lower case public in the odbc definition in Windows
>>>>> 10,
>>>>> the QLIK BI application, on its ODBC connection page, forces an upper
>>>>> case
>>>>> "PUBLIC" as you can see in the screen shot, and as far as I can tell
>>>>> there
>>>>> are no options to change that.
>>>>>
>>>>> QlikOdbcPanel.png
>>>>> <
>>>>> http://apache-ignite-users.70518.x6.nabble.com/file/t361/QlikOdbcPanel.png>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>>>
>>>>


Re: How to create tables with JDBC, read with ODBC?

2018-09-07 Thread Igor Sapego
Well, ODBC applies quotes to all schemas. It makes sense to
check and not apply quotes to PUBLIC, but this won't help in
all other cases, when cache-name-schema is used.

Best Regards,
Igor


On Fri, Sep 7, 2018 at 2:13 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> It's actually very strange that we have quotes around PUBLIC since it's
> supposed to be used quote-free. I will take a look.
>
> Regards,
>
> --
> Ilya Kasnacheev
>
>
> пт, 7 сент. 2018 г. в 14:07, Igor Sapego :
>
>> It happens, because ODBC returns schema name in quotes,
>> so seems like QLIK adds its own quotes around it, as it encounters
>> non standard characters (quotes).
>>
>> I think, it is a QLIK's error, as our ODBC driver explicitly states, that
>> no
>> additional quotes should be used around identifiers. And even if it choose
>> to apply quotes to "PUBLIC" result obviously should not be a ""PUBLIC"".
>>
>> Best Regards,
>> Igor
>>
>>
>> On Thu, Sep 6, 2018 at 6:43 PM limabean  wrote:
>>
>>> Although I specify lower case public in the odbc definition in Windows
>>> 10,
>>> the QLIK BI application, on its ODBC connection page, forces an upper
>>> case
>>> "PUBLIC" as you can see in the screen shot, and as far as I can tell
>>> there
>>> are no options to change that.
>>>
>>> QlikOdbcPanel.png
>>> <
>>> http://apache-ignite-users.70518.x6.nabble.com/file/t361/QlikOdbcPanel.png>
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>
>>


Re: How to create tables with JDBC, read with ODBC?

2018-09-07 Thread Igor Sapego
It happens, because ODBC returns schema name in quotes,
so seems like QLIK adds its own quotes around it, as it encounters
non standard characters (quotes).

I think, it is a QLIK's error, as our ODBC driver explicitly states, that no
additional quotes should be used around identifiers. And even if it choose
to apply quotes to "PUBLIC" result obviously should not be a ""PUBLIC"".

Best Regards,
Igor


On Thu, Sep 6, 2018 at 6:43 PM limabean  wrote:

> Although I specify lower case public in the odbc definition in Windows 10,
> the QLIK BI application, on its ODBC connection page, forces an upper case
> "PUBLIC" as you can see in the screen shot, and as far as I can tell there
> are no options to change that.
>
> QlikOdbcPanel.png
> <
> http://apache-ignite-users.70518.x6.nabble.com/file/t361/QlikOdbcPanel.png>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: C++ client only

2018-09-04 Thread Igor Sapego
Hi,

It's weird. How do you see that?

Best Regards,
Igor


On Tue, Sep 4, 2018 at 5:26 PM F.D.  wrote:

> Hi Igniters,
>
> I've my client (C++) and I want to send my computations (distritubuted
> closures) on a server. I want to prevent my client from participating in
> the calculation.
>
> I've inserted in the client configuration file this line:
>
>   
>
> but I continue to see that part of the distributed closures are continuing
> to be executed on the client side.
>
> Is there any other configuration to do?
>
> Thanks,
> F.D.
>


  1   2   3   4   >