文档章节

JCo3 建立连接到SAP(2)- 连接池

朱君
 朱君
发布于 2014/04/09 08:47
字数 503
阅读 237
收藏 0
点赞 0
评论 0

import java.io.File;   
import java.io.FileOutputStream;   
import java.util.Properties;  

import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.ext.DestinationDataProvider;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;

/*
Configuration of destination pool and connection pooling
Each destination is associated with a connection factory and,
if the pooling feature is used, with a connection pool.
Initially the destination pool is empty. JCo runtime does not
preallocate connections. The first connection will be created
on first call. The property peak_limit describe how many
connection can be created simultaneously, if applications
allocate connections (either during a remote calls or for a
stateful call sequence) in different sessions at the same time.
After peak_limit connections are allocated (in peak_limit
sessions), the next session will wait for
maximum max_get_client_time ms until an other session
release a connection (either finishes the remote call or
ends the stateful call sequence). In case the waiting
session does not get any connection during
the max_get_client_time ms the function request will be
aborted with a JCoException with the key JCO_ERROR_RESSOURCE.
The connections that are no longer used by the applications
are put back to the internal destination pool. There are at
most pool_capacity connections kept opened by the pool. Further
connections (peak_limit-pool_capacity) will be closed immediately.
 The pooled connections (opened connection in pool) are marked as
 expired if they are not used during the expiration_time ms. The
 expired connections will be closed by a timeout checker thread,
 that runs every expiration_check_period ms.

*/
public class ConnectPooled {
    static String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL";  
    static   
    {  
       Properties connectProperties = new Properties();   
        connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "192.168.19.28");   
        connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "00");   
        connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "000");   
        connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "TEST01");   
        connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "ADMIN123");   
        connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "en");
        //JCO_PEAK_LIMIT -  Maximum number of idle connections kept open by the destination.
        connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3");

        //JCO_POOL_CAPACITY - Maximum number of active connections that
        //can be created for a destination simultaneously
        connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT,    "10");   
        createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);   
    }

    static void createDataFile(String name, String suffix, Properties properties)   
    {   
        File cfg = new File(name+"."+suffix);   
        if(!cfg.exists())   
        {   
            try   
            {   
                FileOutputStream fos = new FileOutputStream(cfg, false);   
                properties.store(fos, "for tests only !");   
                fos.close();   
            }   
            catch (Exception e)   
            {   
                throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);   
            }   
        }   
    }  
    
    public static void connectWithPooled() throws JCoException   
    {   
        JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);   
        destination.ping();   
        System.out.println("Attributes:");   
        System.out.println(destination.getAttributes());   
        System.out.println();   
    }   
    
    public static void main(String[] args) throws JCoException   
    {   
        connectWithPooled();   
    }
}



3. 编译:

[c-sharp] view plaincopy

  1. javac -classpath  .;D:/Resources/Libraries/SAPJCo/JCO_304/sapjco3.jar -d classes ConnectPooled.java  

 

4. 运行:

[c-sharp] view plaincopy

  1. java -cp D:/Resources/Libraries/SAPJCo/JCO_304/sapjco3.jar;classes ConnectPooled  

 

运行结果:

[c-sharp] view plaincopy

  1. Attributes:  

  2. DEST:                  ABAP_AS_WITH_POOL  

  3. OWN_HOST:              NB-MinFei  

  4. PARTNER_HOST:          minfei  

  5. SYSTNR:                00  

  6. SYSID:                 C11  

  7. CLIENT:                000  

  8. USER:                  TEST01  

  9. LANGUAGE:              E  

  10. ISO_LANGUAGE:          EN  

  11. OWN_CODEPAGE:          1100  

  12. OWN_CHARSET:           ISO8859_1  

  13. OWN_ENCODING:          iso-8859-1  

  14. OWN_BYTES_PER_CHAR:    1  

  15. PARTNER_CODEPAGE:      1100  

  16. PARTNER_CHARSET:       ISO8859_1  

  17. PARTNER_ENCODING:      iso-8859-1  

  18. PARNER_BYTES_PER_CHAR: 1  

  19. OWN_REL:               720  

  20. PARTNER_REL:           620  

  21. PARTNER_TYPE:          3  

  22. KERNEL_REL:            620  

  23. TRACE:  

  24. RFC_ROLE:              C  

  25. OWN_TYPE:              E  

  26. CPIC_CONVID:           00000000  

 

 

本节到此为止, 下节阐述如何调用JCO调用SAP Function。


本文转载自:http://blog.csdn.net/tohmin/article/details/5672673

共有 人打赏支持
朱君

朱君

粉丝 12
博文 4
码字总数 0
作品 7
上海
后端工程师
JCo3 建立连接到SAP(1)- 直接连接

本文阐述如何使用SAP JCo 3.4 建立到SAP服务器。 1. 创建一SAP用户:Test01, 使用SU01创建用户,本文不在详述。 为了方便起见,我将Profile "SAP_ALL“ 分配给用户TEST01, 如下图所示: 这样...

朱君
2014/04/09
0
0
FineReport连接多维数据库示例及操作

1. 描述 FineReport连接多维数据库,首先要通过数据连接将多维数据库与FineReport连接起来,然后在数据连接的基础上新建多维数据库XMLA数据集,用于模板设计。 2.XMLA数据连接 2.1描述 多维数...

雄霸天下啦
06/26
0
0
对接SAP人事档完成AD账号的自动授权

1、功能介绍 SAP上线后提供人事异动主档查询,通过本地建立数据库,对异动人事主档进行每日的资料整理,串接出每日的新增、离职、异动人员。将此类资料转成csv模式,提供ftp服务供AD服务器抓...

扫地僧void
2017/06/06
0
0
计算机网络(2)

什么是计算机网络? 硬件方面:通过线缆将网络设备和计算机连接起来; 软件方面:操作系统,应用软件,应用程序通过通讯线路互联; 实现资源共享,信息传递 计算机网络功能:数据通信、资源共...

闪耀小行星
01/03
0
0
带你进入数据库连接池

概述 连接池的作用就是为了提高性能,将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对Server端进行访问。这样省略了创建连接和销毁连接的过程(TCP连接建立时的三次...

VincentZ
2017/11/28
0
0
java jdbc连接数据库的

1、封装数据库连接 2、创建dao层接口 3、实现dao层接口 4、使用事务 (1)当Jdbc程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL...

红焖鲤鱼
2016/12/07
35
0
基于MysqlConnector/C++的数据库连接池的实现

1.连接池的介绍: 1.1应用背景: 一般的应用程序都会访问到数据库,在程序访问数据库的时候,每一次数据访问请求都必须经过下面几个步骤:建立数据库连接,打开数据库,对数据库中的数据进行...

barsoom
2013/01/24
0
0
sql server支持连接管理功能

为了有效的使用后端连接,减少重复向数据库建立新连接带来的时间和资源开销。oneproxy-monitor提供了连接管理的功能。oneproxy-for-sqlserver使用oneproxy-monitor提供的连接管理功能来实现连...

harris2016
2016/11/14
71
0
JDBC--数据库连接池

一、数据库连接池 (1)JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:   在主程序(如servlet、beans)中建立数据库连接。 进行sql操作 断开数...

大道无名
2016/07/02
109
0
使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise

最近Jerry接到一个原型开发的任务,需要在微信里调用ABAP On Premise系统(SAP CRM On-Premise)里的某些函数。具体场景和我之前的公众号文章 Cloud for Customer和微信集成系列教程 描述的场...

JerryWang_SAP
06/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

DUBBO 详细介绍

摘要: 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能 Registry: 服务目录框架...

明理萝
13分钟前
0
1
4 个快速的 Python 编译器 for 2018

简评:Python 和其他的解释型语言一样经常被吐槽性能不行,所以开发人员为了提升性能创建了不少编译器,本文则选取其中的四个做了基准测试。 Python 其实是一种相当快的语言,但它并不像编译...

极光推送
16分钟前
0
0
spring boot注册多个MQ服务器的问题

关于注册到多个MQ源的文章已经有很多了,这里记录一下声明queue的坑; 如果使用注册bean的方式声明queue,会导致声明的queue同时被注册到所有的MQ源上; //如果使用下面的声明方式,que...

placeholder
17分钟前
0
0
Java面试基础篇——第九篇:BIO,NIO,AIO的区别

现在IO模型主要分三类:BIO(同步阻塞IO),NIO(同步非阻塞IO),AIO()。 先来看看BIO。 1. BIO 服务端接受到请求后,要指派或新建一个线程去处理客户端的IO请求,直到收到断开连接的指令。这么做...

developlee的潇洒人生
22分钟前
0
0
@RequestMapping @ResponseBody 和 @RequestBody 用法与区别

1.@RequestMapping 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为...

特拉仔
24分钟前
1
0
基于 HTML5 结合互联网+ 的 3D 隧道

前言 目前,物资采购和人力成本是隧道业发展的两大瓶颈。比如依靠民间借贷,融资成本很高;采购价格不透明,没有增值税发票;还有项目管控和供应链管理的问题。成本在不断上升,利润在不断下...

xhload3d
26分钟前
0
0
济南小程序热度分析

原文链接:http://www.jnqianle.cn/company/2072.html

tianma3798
27分钟前
1
0
大数据软件

beats 采集 kafka spark hive es grafana zeppelin

ArlenXu
30分钟前
0
0
Mac item2常用快捷键

标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 水平分屏:command + d 垂直分屏:c...

说回答
33分钟前
0
0
mac常用软件

1.excel for mac http://www.pc6.com/mac/114205.html

小黑202
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部