Hi,

I'm trying without success to enable JNA for Cassandra on Windows.

Tried to place JNA 3.3.0 libs jna.jar and platform.jar into Cassandra 0.8.6
lib dir, but getting in log:
Unable to link C library. Native methods will be disabled.

What is missed or what is wrong?

One thing I've found on inet about JNA and Windows is this sample:

// Library is c for unix and msvcrt for windows
String libName = "c";
if (System.getProperty("os.name").contains("Windows"))
{
  libName = "msvcrt";
}

// Loading dynamically the library
CInterface demo = (CInterface) Native.loadLibrary(libName, CInterface.class);


from http://www.scriptol.com/programming/jna.php

while in Cassandra:

try
    {
        Native.register("c");
    }
    catch (NoClassDefFoundError e)
    {
        logger.info("JNA not found. Native methods will be disabled.");
    }
    catch (UnsatisfiedLinkError e)
    {
        logger.info("Unable to link C library. Native methods will be
disabled.");
    }
    catch (NoSuchMethodError e)
    {
        logger.warn("Obsolete version of JNA present; unable to
register C library. Upgrade to JNA 3.2.7 or later");
    }


Is it true that for Windows Cassandra should do something like:

if (System.getProperty("os.name").contains("Windows"))
{
    Native.register("msvcrt");
}
else
{
    Native.register("c");
}



Thanks
Viktor

Reply via email to