首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bloomberg无法启动会话

bloomberg无法启动会话
EN

Stack Overflow用户
提问于 2013-06-26 02:20:51
回答 2查看 7.1K关注 0票数 2

我正在使用bloomberg API来获取市场数据,这是API SDK给出的示例

代码语言:javascript
复制
package blpapi;

import com.bloomberglp.blpapi.CorrelationID;
import com.bloomberglp.blpapi.Element;
import com.bloomberglp.blpapi.Event;
import com.bloomberglp.blpapi.Message;
import com.bloomberglp.blpapi.MessageIterator;
import com.bloomberglp.blpapi.Name;
import com.bloomberglp.blpapi.Request;
import com.bloomberglp.blpapi.Service;
import com.bloomberglp.blpapi.Session;
import com.bloomberglp.blpapi.SessionOptions;

public class SimpleRefDataExample {
    private static final Name SECURITY_DATA = new Name("securityData");
    private static final Name SECURITY = new Name("security");
    private static final Name FIELD_DATA = new Name("fieldData");
    private static final Name FIELD_EXCEPTIONS = new Name("fieldExceptions");
    private static final Name FIELD_ID = new Name("fieldId");
    private static final Name ERROR_INFO = new Name("errorInfo");
    private CorrelationID d_cid;

    public static void main(String[] args) throws Exception {
        SimpleRefDataExample example = new SimpleRefDataExample();
        example.run(args);
        System.out.println("Press ENTER to quit");
        System.in.read();
    }

    private void run(String[] args) throws Exception {
        String serverHost = "localhost";
        int serverPort = 35230;

        SessionOptions sessionOptions = new SessionOptions();
        sessionOptions.setServerHost(serverHost);
        sessionOptions.setServerPort(serverPort);

        Session session = new Session(sessionOptions);

        System.out.println("Connecting to " + serverHost + ":" + serverPort);
        if (!session.start()) {
            System.err.println("Failed to start session.");
            return;
        }
        System.out.println("Connected successfully.");

        if (!session.openService("//blp/refdata")) {
            System.err.println("Failed to open //blp/refdata");
            return;
        }

        Service refDataService = session.getService("//blp/refdata");
        Request request = refDataService.createRequest("ReferenceDataRequest");

        // append securities to request
        Element securities = request.getElement("securities");
        securities.appendValue("IBM US Equity");
        securities.appendValue("/cusip/912828GM6@BGN");

        // append fields to request
        Element fields = request.getElement("fields");
        fields.appendValue("PX_LAST");
        fields.appendValue("DS002");

        System.out.println("Sending Request: " + request);
        d_cid = session.sendRequest(request, null);

        while (true) {
            Event event = session.nextEvent();
            MessageIterator msgIter = event.messageIterator();
            while (msgIter.hasNext()) {
                Message msg = msgIter.next();
                if (msg.correlationID() == d_cid) {
                    processMessage(msg);
                }
            }
            if (event.eventType() == Event.EventType.RESPONSE) {
                break;
            }
        }
    }

    private void processMessage(Message msg) throws Exception {
        Element securityDataArray = msg.getElement(SECURITY_DATA);
        int numSecurities = securityDataArray.numValues();
        for (int i = 0; i < numSecurities; ++i) {
            Element securityData = securityDataArray.getValueAsElement(i);
            System.out.println(securityData.getElementAsString(SECURITY));
            Element fieldData = securityData.getElement(FIELD_DATA);
            for (int j = 0; j < fieldData.numElements(); ++j) {
                Element field = fieldData.getElement(j);
                if (field.isNull()) {
                    System.out.println(field.name() + " is NULL.");
                } else {
                    System.out.println(field);
                }
            }
            Element fieldExceptionArray =
                securityData.getElement(FIELD_EXCEPTIONS);
            for (int k = 0; k < fieldExceptionArray.numValues(); ++k) {
                Element fieldException =
                    fieldExceptionArray.getValueAsElement(k);
                System.out.println(
                        fieldException.getElement(ERROR_INFO).getElementAsString("category")
                        + ": " + fieldException.getElementAsString(FIELD_ID));
            }
            System.out.println("\n");
        }
    }
}

获取此错误:

代码语言:javascript
复制
run:
Connecting to localhost:35230
Failed to start session.
Press ENTER to quit

本地主机正在我的系统上通过xampp运行,我尝试了默认端口: 8080,没有端口也不工作,然后我启动了玻璃鱼服务器,它也是工作的http://localhost:35230,但仍然得到这个错误需要什么更多的配置?

EN

回答 2

Stack Overflow用户

发布于 2013-06-26 02:22:08

本地bbcomm进程的默认端口通常为8194。您需要运行bbcomm.exe进程,并通过Bloomberg终端连接到Bloomberg。

票数 2
EN

Stack Overflow用户

发布于 2013-07-10 20:06:23

如果您使用的是Desktop API,Bloomberg API不允许您连接到除本地主机以外的任何其他计算机。这是设计好的。

如上所述,DesktopAPI的默认端口是8194。检查BBCOMM.CFG文件,查看是否正在使用端口8194。

还可以直接从命令提示符运行BBCOMM file,查看是否出现错误。

如果您正在使用ServerAPI,请让我知道...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17304714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档