Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 06A7C9198 for ; Fri, 23 Sep 2011 12:50:14 +0000 (UTC) Received: (qmail 15167 invoked by uid 500); 23 Sep 2011 12:50:11 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 15126 invoked by uid 500); 23 Sep 2011 12:50:11 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 15118 invoked by uid 99); 23 Sep 2011 12:50:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 Sep 2011 12:50:11 +0000 X-ASF-Spam-Status: No, hits=4.0 required=5.0 tests=FREEMAIL_FROM,FREEMAIL_REPLY,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jbellis@gmail.com designates 209.85.215.172 as permitted sender) Received: from [209.85.215.172] (HELO mail-ey0-f172.google.com) (209.85.215.172) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 23 Sep 2011 12:50:07 +0000 Received: by mail-ey0-f172.google.com with SMTP id 4so2326932eye.31 for ; Fri, 23 Sep 2011 05:49:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=9LaTx2ApZ53ciz8rettif8tbFF7VIWqtMn6asSiLRXo=; b=XKHAIIxyaxmHomSMlSCfkO0vLWn6CPZeYQdHZJnMvFN8FJlU3QxAvZbhmJGcpQhjug JveUkotx6IZvo5U8z1FQw7wUFqbiL/RFV3SHPrHMp3k3sESUzalEnw1F9csGclIPgun4 5144jIKXGE6sIL+lTvHtZqABcBPhuE5CCG288= Received: by 10.213.8.139 with SMTP id h11mr263053ebh.139.1316782186328; Fri, 23 Sep 2011 05:49:46 -0700 (PDT) MIME-Version: 1.0 Received: by 10.213.16.193 with HTTP; Fri, 23 Sep 2011 05:49:26 -0700 (PDT) In-Reply-To: References: From: Jonathan Ellis Date: Fri, 23 Sep 2011 08:49:26 -0400 Message-ID: Subject: Re: How to enable JNA for Cassandra on Windows? To: user@cassandra.apache.org Content-Type: multipart/related; boundary=0015174bedcc7671c804ad9b3ec3 --0015174bedcc7671c804ad9b3ec3 Content-Type: multipart/alternative; boundary=0015174bedcc7671c204ad9b3ec2 --0015174bedcc7671c204ad9b3ec2 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable mmap is supported by the JDK, jna is not required. On Fri, Sep 23, 2011 at 5:07 AM, Viktor Jevdokimov < Viktor.Jevdokimov@adform.com> wrote: > I found that there=91s no C library under Windows, and msvcrt does not > provide mlockall function, so currently there=91s no way to use JNA under > Windows. That way mmap is not a good idea?**** > > ** ** > > ** ** > ** > > ** ** > > Best regards/ Pagarbiai**** > > ** ** > > *Viktor Jevdokimov* > > Senior Developer**** > > ** ** > > Email: Viktor.Jevdokimov@adform.com**** > > Phone: +370 5 212 3063****. Fax: +370 5 261 0453**** > > J. Jasinskio 16C, LT-01112 Vilnius, Lithuania**** > > ** ** > > ** ** > > [image: Adform news] > > [image: Visit us!] > > Follow: > > [image: twitter] > > Visit our blog > > Disclaimer: The information contained in this message and attachments is > intended solely for the attention and use of the named addressee and may = be > confidential. If you are not the intended recipient, you are reminded tha= t > the information remains the property of the sender. You must not use, > disclose, distribute, copy, print or rely on this e-mail. If you have > received this message in error, please contact the sender immediately and > irrevocably delete this message and any copies.**** > > *From:* Viktor Jevdokimov [mailto:vjevdokimov@gmail.com] > *Sent:* Thursday, September 22, 2011 15:01 > *To:* user@cassandra.apache.org > *Subject:* How to enable JNA for Cassandra on Windows?**** > > ** ** > > 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 =3D "c"; > if (System.getProperty("os.name").contains("Windows")) > { > libName =3D "msvcrt"; > > **** > > } > > **** > > // Loading dynamically the library > CInterface demo =3D (CInterface) Native.loadLibrary(libName, CInterface.c= lass); **** > > ** ** > > 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 dis= abled.");**** > > }**** > > 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**** > --=20 Jonathan Ellis Project Chair, Apache Cassandra co-founder of DataStax, the source for professional Cassandra support http://www.datastax.com --0015174bedcc7671c204ad9b3ec2 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable mmap is supported by the JDK, jna is not required.

On Fri, Sep 23, 2011 at 5:07 AM, Viktor Jevdokimov <Viktor.Jevdokimov@a= dform.com> wrote:

I found that there=91s no C library under Windows, and msvcrt does not= provide mlockall function, so currently there=91s no way to use JNA under = Windows. That way mmap is not a good idea?

=A0

=A0

=A0

Best regards/ Pagarbiai

=A0

Viktor Jevdokimov

Senior Developer

=A0

Email:=A0=20 Viktor.Jevdokimov@adform.com<= /span>

Phone:=20 +370 5 212 3063. Fax:=20 +370 5 261 0453

J. Jasinskio 16C, LT-01112 Vilnius, Lithuania

=A0

=A0

3D"Adform

3D"Visit

Follow:

3D"twitter"

Visit our blog=

Disclaimer: The information contained in this message and attachments is intended solel= y for=20 the attention and use of the named addressee and may be confidential. If yo= u are=20 not the intended recipient, you are reminded that the information remains t= he=20 property of the sender. You must not use, disclose, distribute, copy, print= or=20 rely on this e-mail. If you have received this message in error, please con= tact=20 the sender immediately and irrevocably delete this message and any=20 copies.


From: Viktor = Jevdokimov [mailto:vjevdokimov@gmail.com]
Sent: Thursday, September 22, 2011 15:01
To: user@cassandra.apache.org=
Subject: How to enable JNA for Cassandra on Windows?<= u>

=A0<= /p>

Hi,

= =A0

I'm trying witho= ut success to enable JNA for Cassandra on Windows.

=A0

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.

=A0

What is missed or what is wrong?

=A0

One thing I've f= ound on inet about JNA and Windows is this sample:

<= div>
=A0

// Library is c for unix and msvcrt for =
windows
String libName =3D "c";
if (System.getProperty("os.name").contains("Win= dows"))
{
=A0=A0libName =3D "msvcrt";=A0

=
} 

// Loading dynamically the library
CInterface demo =3D (CInterface) Nat= ive.loadLibrary(libName, CInterface.class);

=A0

=A0

while in Cassandra:

=A0
try
=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0 Native.register("c"=
;);
=A0=A0=A0 }

=A0=A0=A0=
 catch (NoClassDefFoundError e)

=A0=A0=A0=
 {
=A0=A0=A0=A0=A0=A0=
=A0 logger.info("=
JNA not found. Native methods will be disabled.");
=A0=A0=A0 }

=A0=A0=A0=
 catch (UnsatisfiedLinkError e)

=A0=A0=A0=
 {
=A0=A0=A0=A0=A0=A0=
=A0 logger.info("=
Unable to link C library. Native methods will be disabled.");
=A0=A0=A0 }

=A0=A0=A0=
 catch (NoSuchMethodError e)

=A0=A0=A0=
 {
=A0=A0=A0=A0=A0=A0=
=A0 logger.warn("Obsolete version of JNA present; unable to register C=
 library. Upgrade to JNA 3.2.7 or later");
=A0=A0=A0 }

=A0

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

=A0

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

=A0=A0=A0 Native.register("c"); 
}
=

=A0

=A0

Thanks=

Viktor

<= /div>



--
Jonath= an Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for p= rofessional Cassandra support
http://www.datastax.com
--0015174bedcc7671c204ad9b3ec2-- --0015174bedcc7671c804ad9b3ec3 Content-Type: image/png; name="dm-exco6cf8.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f62f760717436f2e_0.2 iVBORw0KGgoAAAANSUhEUgAAAXAAAAANCAYAAACw0jWUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl SUQ9InhtcC5paWQ6Qzk5QzVCQ0JEQjAyMTFFMEE0NDFCODQ4MzMzMkI3NzciIHhtcE1NOkRvY3Vt ZW50SUQ9InhtcC5kaWQ6Qzk5QzVCQ0NEQjAyMTFFMEE0NDFCODQ4MzMzMkI3NzciPiA8eG1wTU06 RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOTlDNUJDOURCMDIxMUUwQTQ0 MUI4NDgzMzMyQjc3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOTlDNUJDQURCMDIxMUUw QTQ0MUI4NDgzMzMyQjc3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w bWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv5M8HoAAAaNSURBVHja7JuvU/Q8EMfbZ5gBBwocOHA4 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 fJTTc2dkkXAAAAAASUVORK5CYII= --0015174bedcc7671c804ad9b3ec3 Content-Type: image/png; name="signature-logo3d60.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f62f760717436f2e_0.1 iVBORw0KGgoAAAANSUhEUgAAAGgAAAAcCAYAAACNr/p2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl SUQ9InhtcC5paWQ6Qzk5QzVCQzdEQjAyMTFFMEE0NDFCODQ4MzMzMkI3NzciIHhtcE1NOkRvY3Vt ZW50SUQ9InhtcC5kaWQ6Qzk5QzVCQzhEQjAyMTFFMEE0NDFCODQ4MzMzMkI3NzciPiA8eG1wTU06 RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOTlDNUJDNURCMDIxMUUwQTQ0 MUI4NDgzMzMyQjc3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOTlDNUJDNkRCMDIxMUUw QTQ0MUI4NDgzMzMyQjc3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqhJYX4AAAdWSURBVHja7FpNbFRVFD73zUwLpWlRKOFH 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 --0015174bedcc7671c804ad9b3ec3 Content-Type: image/png; name="tweet5595.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f62f760717436f2e_0.3 iVBORw0KGgoAAAANSUhEUgAAABIAAAARCAYAAADQWvz5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl SUQ9InhtcC5paWQ6QUY1MUU5NTREQjAzMTFFMEE0NDFCODQ4MzMzMkI3NzciIHhtcE1NOkRvY3Vt ZW50SUQ9InhtcC5kaWQ6QUY1MUU5NTVEQjAzMTFFMEE0NDFCODQ4MzMzMkI3NzciPiA8eG1wTU06 RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOTlDNUJDRERCMDIxMUUwQTQ0 MUI4NDgzMzMyQjc3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOTlDNUJDRURCMDIxMUUw QTQ0MUI4NDgzMzMyQjc3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgHDABAAAAHoSURBVHjajFTNSxtREP+9TWKzamKLpUYr Rajxo3gTPZgeBLH0T4geFXusSP+BUhRBkUKP4kH0ojeF4qUgvSgiBI0faQUVjBCqqI1JDInZfeO+ DfnYbBL9wSzvzcz7vZnZmceICIXw3YB+hoDfF0BUyekdVqC3Dhh5CzTIYPlnWD5RNAX6ekA6wWMY bAK+tDFmIhIkI9scRxE8Ga1OYMkj6WRSRjnm4/gbJhBPS+cLLY1XyO6LifCfDnA9Eqv4rJ5z2r5S Dbd977TBYQM+risIxalkVIunom6MdKKFUxUqNzoLEgGXHTiPUdkUV4IqrNEUUeC/WtJpvsdq2C+c KJjcVwy6XyGC9CfMwblZSqGv3mLyvU1qEYmg1TIHJ/xJBMI5u7i4sAx6scXf57x0DQ61tLcu1Udb QXr3XNIjKpTIfZq862Vxe77UyxqRs4Kx/gZz3nNHiXR/ddhx5q3Jyuz7SpPvh9eWdEMOtz4zGWf8 cczsxbORZdBYxUy+Qy323IiMbsRo+SRRNP8ely273vyXMti+dVXhU7vMDEP7eSNCS8eJJ8+at9mO Hx4nM02/wNROjKZ378oS1FQwjHc74HXLrOgzkkEwptLaWQJrwSQOrhXc3nO8qbago9YGj5bmgFvW yCTDe/QgwAAC7Ur/JIzd2wAAAABJRU5ErkJggg== --0015174bedcc7671c804ad9b3ec3--