`
axengine
  • 浏览: 147409 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

informix 多线程/多进程

阅读更多

     Informix支持一个进程中的多个线程同时对数据库进行操作,既可以多个线程使用多个数据库连接,也可以多个线程共享一个数据库连接。
   
    无论是那种方式,都需要认真分析处理多线程的共享变量之间加锁、解锁的处理。

    本文针对多线程的EC程序中的几个问题进行说明:

    1、编译连接
  
    当只有一个完整的ec文件时,可以使用ESQL的-thread选项,ESQL会自动编译连接线程安全的informix库。
  
    当存在多个文件,包括ec、c、C文件时,可以首先使用ESQL的-c和-thread选项将ec文件编译成.o文件,然后使用连接器强制连接线程安全的库(th库)。
  
    总之要求下面几点:
        A、ESQL要加上-thread选项
        B、配置环境变量THREADLIB=POSIX
        C、保证连接的是线程安全的库。

    2、多个线程共享一个连接
      
    多个线程共享一个连接时,在连接建立好以后,可以在一个线程中使用
    EXEC SQL set connection 'con' dormant;
    将连接置于dormant状态,此时的连接可以被其它的线程激活。

    其它线程使用
    do {
     EXEC SQL set connection 'con';
    } while ( ( sqlca.sqlcode == -1802 ) );
    将连接激活,此时可以访问数据库了,而且只用本线程可以访问数据库。
    只有本线程将连接置为dormant后,才可以再被其它的线程使用。

    3、多个线程使用多个连接

    A、此时每个线程需要有自己的连接名,各个连接名必须不同。  
    B、必须仔细处理共享变量的互斥访问。

分享到:
评论

相关推荐

    Informix ESQL/C 开发手册中文版

    2. **连接池**:在多线程或多进程环境中,可以使用连接池来提高性能和资源利用率。 **六、性能优化** 1. **索引**:创建合适的索引可以显著提升查询速度。在设计数据库结构时,应考虑索引的使用。 2. **存储过程*...

    IBM Informix 内部培训资料

    ##### 3.1 进程/多线程结构 Informix 采用了先进的多线程架构,这使其能够在单一进程中支持多个并发线程。这种设计提高了资源利用率,并显著降低了系统开销。 - **基于进程的数据库服务器**:传统上,每个用户连接...

    informix 918 Administration_forIBM_Informix_DynamicServer

    在多线程或多处理器环境下,合理设置这个值可以优化备份性能。 - `BAR_NB_XPORT_COUNT`: 这个参数未给出具体值。`BAR_NB_XPORT_COUNT`控制了在导出过程中可以同时运行的最大数据流数量。这对于并行处理大量数据尤其...

    InformixServer技术手册

    - 动态线程分配和并行化:虚拟处理器允许多个应用程序共用进程,并在需要时实现查询的并行执行。 ***rmix-Online的容错及高可用性: Online在发生系统或存储介质故障时,利用日志和恢复机制来确保数据的完整性和...

    informix锁表处理

    此时,需要分析`onstat -g ses sessid`的输出找到进程PID,然后通过`ps -ef | grep Pid`定位进程并使用`kill -9 pid`强制终止。但这应作为最后的手段,因为这可能导致数据不一致。 9. **预防策略**: 为了减少锁表...

    DBMS进程线程采用对比1

    然而,多线程编程存在挑战,如操作系统对线程保护的不足、调试复杂性和跨平台移植性问题。尽管如此,IBM DB2、微软SQL Server、MySQL、Informix和Sybase等现代DBMS产品都采用了这种模型。 2.1.3 进程池模型: 进程...

    Informix介绍PPT学习教案.pptx

    Informix的独特之处在于其多线程数据库核心,引入了虚拟处理器的概念,每个虚拟处理器对应一个Informix数据库服务器进程。这种设计提高了系统的并发性和响应速度。Informix最初与Unix紧密关联,但现在它已经超越了...

    InformixServer技术手册范本.pdf

    2. **可伸缩性**:Informix Online Dynamic Scalable Architecture (DSA)允许在不停止服务的情况下动态调整资源,包括添加进程和共享内存,确保了系统的扩展性,能够随着业务增长灵活扩展。 3. **高性能**:为了...

    某机器公司IBMInformix技术方案建议书.doc

    3.2 多进程多线索体系结构:采用多线程架构,实现并发处理和负载平衡。 3.3 高性能:通过InfiniDB列式存储和实时分析能力,提升大数据查询性能。 3.4 高可用性:通过复制、故障切换和热备份等功能,保证服务不间断...

    Informix Onstat命令详解

    `-g`执行`MT`命令,这是针对多线程操作的一系列特定命令,如后面会提到的`all`, `ath`, `wai`等。 #### -h (Hash Chains) `-h`展示缓冲区Hash链的信息,这对于分析哈希表性能非常有用。 #### -i (Interactive Mode...

    06 Informix数据库使用案例.doc

    在Informix中,线程用于并发执行任务,支持多用户同时访问数据库,确保系统的响应速度和吞吐量。 1.5 **磁盘组件** Informix的磁盘组件包括数据文件、日志文件、索引文件等,这些组件决定了数据库的存储布局和...

    informix培训文档

    在 Informix 服务器上运行其他服务进程可能会影响数据库性能,特别是消耗大量系统资源(如共享内存和信号量)的应用。应避免在 Informix 服务器上运行大型数据库或中间件应用,以防止资源冲突。 4. **Informix ...

    INFORMIX之数据库技术.pdf

    2. **AFF_NPROCS**、**AFF_SPROC**、**MULTIPROCESSOR**等,与处理器和多线程处理相关。 3. **NUMCPUVPS**、**NUMAIOVPS**、**SINGLE_CPU_VP**等,管理CPU资源分配。 这些内容构成了INFORMIX数据库技术的基础,帮助...

    (重要)AIX command 使用总结.txt

    //设置文件系统/tellinshare/sms的mind属性,否则当文件系统中有足够多的大文件(指32K以上的文件)时会出问题 #chfs -a options=rw,mind /tellinshare/sms mkgroup id=101 informix //创建组informix, 组编号101 ...

    华为网络工程后是面试汇总

    - 多进程和多线程都是提高并发性的方法。进程间数据隔离强,线程共享数据更方便。 - 进程适合跨机器迁移,线程更适合在同一系统内的并行计算。 - 进程开销大,线程开销小,但线程不利于资源保护。 6. **面试流程...

    Linux全攻略--MySQL数据库配置与管理.pdf

    MySQL是一种精巧的、多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成。MySQL具有非常好的性能,甚至可以和目前的所有商用数据库系统相媲美,其主要优点是“简单、...

    IBM IDS架构文档

    这种内存管理机制能够有效地支持多进程和多线程环境,提高了数据的访问效率。 存储模型方面,IDS通过磁盘存储数据表的数据和数据库服务器的系统信息,保证了数据的持久化和系统的稳定性。 DSA架构还引入了并行处理...

    windows socket简易教程

    - **多线程支持**:WinSock 2.0.8增加了对多线程的支持,允许开发者在一个进程中同时处理多个并发连接,提高了程序的效率和响应速度。 - **错误处理**:在进行网络编程时,正确处理各种可能出现的错误非常重要。本书...

Global site tag (gtag.js) - Google Analytics