惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
GbyAI
GbyAI
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
B
Blog
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
雷峰网
雷峰网
爱范儿
爱范儿
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
U
Unit 42
Microsoft Azure Blog
Microsoft Azure Blog
Microsoft Security Blog
Microsoft Security Blog
Jina AI
Jina AI
P
Proofpoint News Feed
A
About on SuperTechFans
I
InfoQ
F
Fortinet All Blogs
L
LangChain Blog
T
Tailwind CSS Blog

博客园 - 行知

解决DOC-to-Help Import CHM 文件的TOC错误问题 Teradata Expression 12 在Windows 2003上Connection Reset 问题的解决方法 SQL Server 链接Oracle数据库的查询 openSUSE 添加一个Application OpenSUSE+Eclipse+Aptana+Air的安装过程全纪录 WCF Host Open的问题 在Linux系统中安装VMWare Tools 在RedHat Enterprise 4 上安装 Mono1.9 (三) 在RedHat Enterprise 4 上安装 Mono1.9 (二) 在RedHat Enterprise 4 上安装 Mono1.9 (一) ActiveRecord 对象在Json序列化时,出现异常Newtonsoft.Json.JsonSerializationException: Self referencing loop ExtJs+MonoRail 使用XML传递数据 DataTable 的 JSON 序列化 Composite UI Application Block and DevExpress log4net碰到的奇怪问题 继续招聘.net程序员(上海) 招聘.Net程序员(工作在上海) 有感于框架设计难,实施框架更难! NHibernate日期类型的映射
在RedHat Enterprise 4 上安装 Mono1.9 (四)
行知 · 2008-05-29 · via 博客园 - 行知

(1)Mono 安装  
(2)Apache和XSP 安装和配置  
(3)Castle MonoRails配置运行

这两天,一直试图让我们的系统连接到Oracle,但是让我们很困惑的是,系统一直提示说:System.DllNotFoundException: libclntsh.so。Goole了一下,网上很多的人也是遇到了这个问题,参考他们的说明和方法,但是始终不能解决。后来我只好换了一个操作系统,改用OpenSUSE,出乎意料,很顺利的连到Oracle。

其实在Linux上配置Oracle应该是比较简单,以OpenSUSE为例:

  1. 首先去下载一个Oracle的 Oracle Instant client,很小,只有几十M。
  2. 解压缩并Copy到Linux的某个文件夹,比如 :/home/oracleclient.
  3. copy一个tnsnames.ora文件到这个文件夹。或者自己写一个按照如下格式:
    ORA10G =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ora10g)
        )
      )
  4. 在Apache的配置文件中加入:
    export LD_LIBRARY_PATH=/home/oracleclient:$LD_LIBRARY_PATH
    export TNS_ADMIN=/home/oracleclient
  5. 客户端文件夹中可能只有一个libclntsh.so.10.1,因此你可以做一个连接文件libclntsh.so,或者修个/etc/mono/config, 中的oci到libclntsh.so.10.1
  6. 重新启动Apache
  7. 启动应用程序测试。
  8. 如果Oracle出来的中文是乱码,则需要在Apache的配置文件在加入:
    export NLS_LANG=american_america.AL32UTF8

以上的安装假定,Oracle数据已经安装在另外一台服务器上。那么这台Mono服务器几乎不需要安装复杂的Oracle Client。但是这些配置在ReaHat上就不起作用,它一如既往的找不到DLL。难道是因为它是数据库服务器呢?还是因为它的Apache安装配置不正确?这还需要进一步求证。

接下来的Oracle测试中,大部分都可以使用,但是

 使用OracleClientFactory.Instance获取DBFactory的地方却一直出错。难道Mono还没有实现这个Factory?