The APR based Apache Tomcat Native library which allows optimal performance in production 問題的解決

衣舞晨風發表於2016-05-20

資訊:
The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:XXXX

出現原因分析:

Tomcat建議使用apache的apr,來更好的執行Tomcat;

——————–apache的apr 的介紹 —————————

APR(Apache portable Run-time libraries,Apache可移植執行庫)的目的如其名稱一樣,主要為上層的應用程式提供一個可以跨越多作業系統平臺使用的底層支援介面庫。在早期 的Apache版本中,應用程式本身必須能夠處理各種具體作業系統平臺的細節,並針對不同的平臺呼叫不同的處理函式。

隨著Apache的進一步開發,Apache組織決定將這些通用的函式獨立出來並發展成為一個新的專案。這樣,APR的開發就從Apache中獨立出來,Apache僅僅是使用 APR而已。

APR使得平臺細節的處理進行下移。對於應用程式而言,它們根本就不需要考慮具體的平臺,不管是Unix、Linux還是Window,應用程式執行的介面基本都是統一一致的。因此對於APR而言,可移植性和統一的上層介面是其考慮的一個重點。而APR最早的目的並不是如此,它最早只是希望將Apache中用到的所有程式碼合併為一個通用的程式碼庫,然而這不是一個正確的策略,因此後來APR改變了其目標。有的時候使用公共程式碼並不是一件好事,比如如何將一個請求對映到執行緒或者程式是平臺相關的,因此僅僅一個公共的程式碼庫並不能完成這種區分。APR的目標則是希望安全合併所有的能夠合併的程式碼而不需要犧牲效能。

APR的最早的一個目標就是為所有的平臺(不是部分)提供一個公共的統一操作函式介面,這是一個非常了不起的目的,當然也是不現實的一個目標。我們不可能支援所有平臺的所有特徵,因此APR目前只能為大多數平臺提供所有的APR特性支援,包括Win32、OS/2、BeOS、Darwin、Linux等等。為了能夠實現這個目標,APR開發者必須為那些不能執行於所有平臺的特性建立了一系列的特徵巨集(FEATURE MACROS)以在各個平臺之間區分這些特徵。這些特徵巨集定義非常簡單,通常用APR_HAS_FEATURE引數設定:

如果某個平臺具有這個特性,則該巨集必須設定為true,比如Linux和window都具有記憶體對映檔案,同時APR提供了記憶體對映檔案的操作介面,因此在這兩個平臺上,APR_HAS_MMAP巨集必須設定,同時ap_mmap_*函式應該將磁碟檔案對映為記憶體並返回適當的狀態碼。如果你的作業系統並不支援記憶體對映,那麼APR_HAS_MMAP必須設定為0,而且所有的ap_mmap_*函式也可以不需要定義。第二步就是對於那些在程式中使用了不支援的函式必須提出警告。

解決方法:
http://archive.apache.org/dist/tomcat/tomcat-connectors/native/

下載與你Tomcat對應版本的 tcnative-1.dll,放到apache-tomcat-N(版本號)\bin 目錄下面,重啟tomcat ;

如果你不清楚版本,你隨便下載一個版本,放進目錄裡面,在重啟tomcat 的時候,會有提示你合適的 tcnative-1.dll 版本;
一、
這裡寫圖片描述

二、

這裡寫圖片描述

三、
這裡寫圖片描述

四、
這裡寫圖片描述

原文地址:http://www.cnblogs.com/java-class/p/4280037.html

相關文章