I am trying to install ignite odbc driver, I have installed ignite following these steps

https://apacheignite.readme.io/docs/getting-started#installation

# Unpack the source package
$ unzip -q apache-ignite-{version}-src.zip
$ cd apache-ignite-{version}-src

# Build In-Memory Data Fabric release (without LGPL dependencies)
$ mvn clean package -DskipTests

# Build In-Memory Data Fabric release (with LGPL dependencies)
$ mvn clean package -DskipTests -Prelease,lgpl

# Build In-Memory Hadoop Accelerator release
# (optionally specify version of hadoop to use)
$ mvn clean package -DskipTests -Dignite.edition=hadoop [-Dhadoop.version=X.X.X]

After that, added IGNITE_HOME path pointing to ignite directory. Also installed ODBC driver manager http://www.unixodbc.org/

After that, followed these steps,

http://apacheignite.gridgain.org/docs/odbc-driver#section-building-on-linux

But I get this error at "make"

In file included from src/statement.cpp:29:0:
./include/ignite/odbc/statement.h:614:18: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
             std::auto_ptr<query::Query> currentQuery;
                  ^
In file included from /usr/include/c++/5/bits/locale_conv.h:41:0,
                 from /usr/include/c++/5/locale:43,
                 from /usr/include/c++/5/iomanip:43,
                 from ../common/include/ignite/guid.h:27,
                 from ./include/ignite/odbc/app/application_data_buffer.h:25,
                 from ./include/ignite/odbc/diagnostic/diagnostic_record_storage.h:27,
                 from ./include/ignite/odbc/diagnostic/diagnosable.h:21,
                 from ./include/ignite/odbc/query/query.h:25,
                 from ./include/ignite/odbc/query/data_query.h:21,
                 from src/statement.cpp:19:
/usr/include/c++/5/bits/unique_ptr.h:49:28: note: declared here
   template<typename> class auto_ptr;
                            ^
  CXX      src/type_traits.lo
  CXX      src/utility.lo
  CXXLD    libignite-odbc.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc'
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc'
Making all in odbc-test
make[2]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Making all in include
make[3]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test/include'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test/include'
make[3]: Entering directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
  CXX      src/teamcity/teamcity_boost.o
src/teamcity/teamcity_boost.cpp:22:47: fatal error: boost/test/unit_test_suite_impl.hpp: No such file or directory
compilation terminated.
Makefile:625: recipe for target 'src/teamcity/teamcity_boost.o' failed
make[3]: *** [src/teamcity/teamcity_boost.o] Error 1
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:661: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:426: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp'
Makefile:358: recipe for target 'all' failed
make: *** [all] Error 2

I am using Ubuntu 16.04 and apache ignite 1.8.0 latest version with Java 8.

Update:

sudo apt-get install libboost-all-dev
libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
./configure --enable-odbc --disable-node --disable-core
make

src/row_test.cpp:192:18: warning: unused variable ‘rowNum’ [-Wunused-variable]
     const size_t rowNum = 2;
                  ^
  CXX      src/utility_test.o
  CXX      src/queries_test.o
In file included from ../core/include/ignite/cache/cache.h:40:0,
                 from ../core/include/ignite/ignite.h:26,
                 from src/queries_test.cpp:35:
../core/include/ignite/impl/cache/cache_impl.h:27:48: fatal error: ignite/impl/interop/interop_target.h: No such file or directory
compilation terminated.
Makefile:625: recipe for target 'src/queries_test.o' failed
make[3]: *** [src/queries_test.o] Error 1
make[3]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:661: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp/odbc-test'
Makefile:426: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/me/install/apache-ignite/modules/platforms/cpp'
Makefile:358: recipe for target 'all' failed
make: *** [all] Error 2

Update 2: Running with disabling tets worked

 libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
 ./configure --enable-odbc --disable-node --disable-core --disable-tests
 make
 make install

Though the installation is complete, still pdo connection throws exception

odbcinst -j

unixODBC 2.3.4
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /home/me/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

cat cat /usr/local/etc/odbcinst.ini

[Apache Ignite]
Description=Apache Ignite
Driver=/usr/local/lib/libignite-odbc.so
Setup=/usr/local/lib/libignite-odbc.so
DriverODBCVer=03.00
FileUsage=0
UsageCount=1

cat /usr/local/etc/odbc.ini - empty file - Do i need to add anything to it ? - Tried adding above config but same exception.

cat /home/me/.odbc.ini

[Apache Ignite]
Description=Apache Ignite
Driver=/usr/local/lib/libignite-odbc.so
DriverODBCVer=03.00
FileUsage=0
UsageCount=1

$ignite = $dbh = new \PDO('odbc:Apache Ignite');
$ignite->prepare('select * from Person');


  [PDOException]                                                                         
  SQLSTATE[08001] SQLConnect: 0 [unixODBC]Failed to establish connection with the host.
1

There are 1 answers

1
isapego On BEST ANSWER

As you are building ODBC from sources distribution, you should either install boost libraries or disable tests, as they use boost.

To install boost run:

sudo apt-get install libboost-all-dev

To disable tests do the following in the modules/platforms/cpp:

 libtoolize && aclocal && autoheader && automake --add-missing && autoreconf
 ./configure --enable-odbc --disable-node --disable-core --disable-tests
 make