InsufficientBufferRule reporting bogus buffer lengths with live dynamic MBR streams

Can someone tell me why InsufficientBufferRule.as uses the "rtmpMetrics.netStream.bufferLength" as opposed to "rtmpMetrics.netStream.info.videoBufferLength"?
The reason I ask is because the "rtmpMetrics.netStream.bufferLength" returns 10 times(can grow to even more during transitions in quick succesion) what the actuall buffer length is when it switchs to a differnt stream. It will then continually drop until it starts returning the real buffer length(with my current bitrate(100, 300, 500) and bufferTime(10 seconds) setup, its takes about 20 seconds to get back to real buffer length). Durring this time the player is vulnerable to a buffer empty event because of the extremly high(and obviously wrong) buffer length being returned by "rtmpMetrics.netStream.bufferLength". Because of the incorrect buffer length being returned, the "if (_panic || (rtmpMetrics.netStream.bufferLength < minBufferLength && rtmpMetrics.netStream.bufferLength > rtmpMetrics.netStream.bufferTime))" statement never fires and hence the buffer drains completely without any warning.
I hate the stuttering buffer empty, buffer full, buffer empty, buffer full... crap that happens when this occurs so I've been debugging(more like hacking:)) this issue for quite some time. I tried many different things to try and avoid the buffering empty state. Most of my hacks have been done in the NetStreamSwitchManager file and I have had some limited success in avoiding the buffer empty state but ultimatly it would shows it ugly head no matter what I did.
Last night I found the "rtmpMetrics.netStream.info.videoBufferLength" property and noticed it returns the correct buffer length all the time even during a transition. So I changed "if (_panic || (rtmpMetrics.netStream.bufferLength < minBufferLength && rtmpMetrics.netStream.bufferLength > rtmpMetrics.netStream.bufferTime))" to "if (_panic || (rtmpMetrics.netStream.info.videoBufferLength < minBufferLength && rtmpMetrics.netStream.bufferLength > rtmpMetrics.netStream.bufferTime))" and tada!!!! It works like a dream. No matter what I do with my Netlimiter program(simulates bad connections), short of going below the 100kbs setting, the player never reaches the buffer empty state. Yaaaayyyyyyyyy:). I was even able to remove some of my hacks and still get good results. I plan on setting up a totaly new and clean enviroment and try this without any of my previous hacks and see how it works. In the meantime I was hoping someone could enlighten me as to why bufferLength is being used as opposed to videoBufferLength.
I included some browser logs that show what I am describing below. Any insight into this would be greatly appreciated.
100kbs to 300kbs
[LOG] time 10:44:15.967 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 10.102
[LOG] time 10:44:15.969 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 10.1
[LOG] time 10:44:16.517 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 9.901
[LOG] time 10:44:16.519 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 9.9
[LOG] time 10:44:17.49 :: org.osmf.net.rtmpstreaming::InsufficientBandwidthRule : -------Average bandwidth of 68955.72916666667
[LOG] time 10:44:17.50 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 9.981
[LOG] time 10:44:17.57 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 9.95
[LOG] time 10:44:17.549 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : Move up since avg dropped FPS 0 < 2 and bufferLength > 10
[LOG] time 10:44:17.551 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : getNewIndex() - about to return: 2, detail=null
[LOG] time 10:44:17.554 :: org.osmf.net.rtmpstreaming::InsufficientBandwidthRule : -------Average bandwidth of 68955.72916666667
[LOG] time 10:44:17.557 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 10.085
[LOG] time 10:44:17.560 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 10.05
[LOG] time 10:44:17.564 :: org.osmf.net::NetStreamSwitchManager : 10:44:17 GMT-0400>>> NetStreamSwitchManager.----------0
[LOG] time 10:44:17.567 :: org.osmf.net::NetStreamSwitchManager : 10:44:17 GMT-0400>>> NetStreamSwitchManager.checkRules() - Calling for switch to 1 at 300 kbps
[LOG] time 10:44:17.570 :: org.osmf.net::NetStreamSwitchManager : 10:44:17 GMT-0400>>> NetStreamSwitchManager.executeSwitch() - Switching to index 1 at 300 kbps
[LOG] time 10:44:18.165 :: org.osmf.net::NetStreamMetricsBase : onNetStatus() - event.info.code=NetStream.Play.Transition
[LOG] time 10:44:18.167 :: org.osmf.net::NetStreamSwitchManager : 10:44:18 GMT-0400>>> NetStreamSwitchManager.onNetStatus() - event.info.code=NetStream.Play.Transition
[LOG] time 10:44:18.599 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : Move up since avg dropped FPS 0 < 2 and bufferLength > 10
[LOG] time 10:44:18.603 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : getNewIndex() - about to return: 2, detail=null
[LOG] time 10:44:18.607 :: org.osmf.net.rtmpstreaming::InsufficientBandwidthRule : -------Average bandwidth of 68955.72916666667
[LOG] time 10:44:18.610 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 27.508
[LOG] time 10:44:18.612 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 10.1
[LOG] time 10:44:19.99 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : Move up since avg dropped FPS 0 < 2 and bufferLength > 10
[LOG] time 10:44:19.101 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : getNewIndex() - about to return: 2, detail=null
[LOG] time 10:44:19.105 :: org.osmf.net.rtmpstreaming::InsufficientBandwidthRule : -------Average bandwidth of 68955.72916666667
[LOG] time 10:44:19.108 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 27.008
[LOG] time 10:44:19.110 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 10
300kbs to 500kbs
[LOG] time 10:44:47.472 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 10.035
[LOG] time 10:44:47.480 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 10
[LOG] time 10:44:47.966 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : Move up since avg dropped FPS 0 < 2 and bufferLength > 10
[LOG] time 10:44:47.968 :: org.osmf.net.rtmpstreaming::SufficientBandwidthRule : getNewIndex() - about to return: 2, detail=null
[LOG] time 10:44:47.970 :: org.osmf.net.rtmpstreaming::InsufficientBandwidthRule : -------Average bandwidth of 31764.322916666668
[LOG] time 10:44:47.972 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 10.135
[LOG] time 10:44:47.976 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 10.1
[LOG] time 10:44:47.981 :: org.osmf.net::NetStreamSwitchManager : 10:44:47 GMT-0400>>> NetStreamSwitchManager.----------1
[LOG] time 10:44:47.986 :: org.osmf.net::NetStreamSwitchManager : 10:44:47 GMT-0400>>> NetStreamSwitchManager.checkRules() - Calling for switch to 2 at 500 kbps
[LOG] time 10:44:47.989 :: org.osmf.net::NetStreamSwitchManager : 10:44:47 GMT-0400>>> NetStreamSwitchManager.executeSwitch() - Switching to index 2 at 500 kbps
[LOG] time 10:44:48.308 :: org.osmf.net::NetStreamMetricsBase : onNetStatus() - event.info.code=NetStream.Play.Transition
[LOG] time 10:44:48.309 :: org.osmf.net::NetStreamSwitchManager : 10:44:48 GMT-0400>>> NetStreamSwitchManager.onNetStatus() - event.info.code=NetStream.Play.Transition
[LOG] time 10:44:48.465 :: org.osmf.net.rtmpstreaming::InsufficientBandwidthRule : -------Average bandwidth of 23247.514204545456
[LOG] time 10:44:48.467 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 40
[LOG] time 10:44:48.469 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 10
[LOG] time 10:44:48.966 :: org.osmf.net.rtmpstreaming::InsufficientBandwidthRule : -------Average bandwidth of 17793.34677419355
[LOG] time 10:44:48.967 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : bufferLength reporting Buffer of 39.5
[LOG] time 10:44:48.970 :: org.osmf.net.rtmpstreaming::InsufficientBufferRule : videoBufferLength reporting Buffer of 9.9
Thanks,
Wayne
P.S.    While wrighting this I realized I need to replace the second part of that if statement to the videoBufferLength as well, so I will do that and make sure it still works. If I don't reply to this you can assume that it works as well.

Wow I'm starting to get a little confused here. I need to mention that in my first post I said that I changed/used 
"if (_panic || (rtmpMetrics.netStream.bufferLength < minBufferLength && rtmpMetrics.netStream.bufferLength > rtmpMetrics.netStream.bufferTime))".
That was not the truth, I had actually shortened that statement in one of my earlier hack attempts, not really giving it to much thought at the time. The statement that I ended up changing/using was more like
"if (_panic || rtmpMetrics.netStream.bufferLength < minBufferLength)" changed to "if (_panic || rtmpMetrics.netStream.info.videoBufferLength < minBufferLength)".
So now that I go back and try using the original code which I had commented out earlier I realize there is somthing very wrong here, I think:) The second part of the statement
"if (_panic || (rtmpMetrics.netStream.bufferLength < minBufferLength && rtmpMetrics.netStream.bufferLength > rtmpMetrics.netStream.bufferTime))"
is checking if the buffer length is greater than the buffer time, but the first part is checking if the buffer length is less than min buffer length. How would that ever be possible?
bufferTime = 10
minBufferLength = 9
if the bufferLength(no matter which one you use) is less than minBufferLength(9) how is ever going to be greater than bufferTime(10)?
fyi:
if  I change the statement
"if (_panic || (rtmpMetrics.netStream.bufferLength < minBufferLength && rtmpMetrics.netStream.bufferLength > rtmpMetrics.netStream.bufferTime))"
to
"if (_panic || (rtmpMetrics.netStream.info.videoBufferLength < minBufferLength && rtmpMetrics.netStream.info.videoBufferLength < rtmpMetrics.netStream.bufferTime))"
it works like a dream again.
Thanks again,
Wayne
P.S.   I noticed that there are other places such as SufficientBandwidthRule.as that are referencing rtmpMetrics.netStream.bufferLength. I plan on going through the code and changing these and see how it works. I'm starting to wonder what else could be written like this or am I crazy? 

Similar Messages

  • Creating Report using EPM Functions with Dynamic Filters

    Hi All,
    I am new to BPC, In BPC 7.5 i seen like we can generate EPM report using EVDRE function very quickly and easy too. Is the same feature is existing in BPC 10.0 ? if no how can we create EPM reports using EPM Functions with Dynamic Filters on the Members of the dimension like in BPC 7.5.
    And i searched in SDN, there is no suitable blogs or documents which are related to generation of Reports using EPM Functions. All are described just in simple syntax way. It is not going to be understand for the beginners.
    Would you please specify in detail step by step.
    Thanks in Advance.
    Siva Nagaraju

    Siva,
    These functions are not used to create reports per se but rather assist in building reports. For ex, you want to make use of certain property to derive any of the dimension members in one of your axes, you will use EPMMemberProperty. Similary, if you want to override members in any axis, you will make use of EPMDimensionOverride.
    Also, EvDRE is not replacement of EPM functions. Rather, you simply create reports using report editor (drag and drop) and then make use of EPM functions to build your report. Forget EvDRE for now.
    You can protect your report to not allow users to have that Edit Report enabled for them.
    As Vadim rightly pointed out, start building some reports and then ask specific questions.
    Hope it clears your doubts.

  • Generating a report in dashboard with live office connection(3.0 version) ?

    Hi,
    iam generating a report in dashboard with live office connection(3.0 version)  but when iam trying to set parameters the refersh button & modify button are disable. how to overcome from this issue?
    Regards,
    Mahendra

    Hi Mahendra,
    Confirm if you are getting the same issue outside Xcelsius  i.e in the Microsoft Excel.
    Try refreshing the Live office objects in MS excel using the option "Refresh all objects "and then import  .xls it in Xcelsius.
    Regards,
    Noopur

  • ERROR reports.reportdefinition : com.crystaldecisions.reports.queryengine.driverImpl.m: JDBC Error: [Microsoft][ODBC Driver Manager] Invalid string or buffer length

    I have developed Java web application which uses Crystal Report 2013 , java 1.6 , Windows 32 bit System, All the reports are loading fine in the Following environment
    Development Environment
    Windows7 Professional Service pack 1 -32 bit
    Java - 1.6
    Internet Explorer 11
    Oracle Client 10g 32 bit ODBC driver
    Testing Environment
    Windows Server 2008 R2 Enterprise - 64 bit
    java 1.6
    Internet Explorer 9
    Oracle Client 11g 62 bit ODBC driver
    While loading reports in the 64 bit server the error occurs
    ERROR reports.reportdefinition :  com.crystaldecisions.reports.queryengine.driverImpl.m: JDBC Error: [Microsoft][ODBC Driver Manager] Invalid string or buffer length
    ERROR dataengine.datasource : Failed to read next recurring database record: database row set error.
    com.crystaldecisions.reports.reportdefinition.datainterface.j: JDBC Error: [Microsoft][ODBC Driver Manager] Invalid string or buffer length
        at com.crystaldecisions.reports.reportdefinition.datainterface.q.a(Unknown Source)
        at com.crystaldecisions.reports.dataengine.n.m(Unknown Source)
        at com.crystaldecisions.reports.dataengine.n.l(Unknown Source)
        at com.crystaldecisions.reports.dataengine.n.bn(Unknown Source)
        at com.crystaldecisions.reports.dataengine.n.bp(Unknown Source)
        at com.crystaldecisions.reports.dataengine.n.else(Unknown Source)
        at com.crystaldecisions.reports.dataengine.s.a(Unknown Source)
        at com.crystaldecisions.reports.dataengine.bk.a(Unknown Source)
        at com.crystaldecisions.reports.dataengine.bk.ab(Unknown Source)
        at com.crystaldecisions.reports.dataengine.bk.<init>(Unknown Source)
        at com.crystaldecisions.reports.dataengine.bk.if(Unknown Source)
        at com.crystaldecisions.reports.dataengine.bk.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bv.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bv.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.be.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.be.h(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.i.h(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.be.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bt.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bv.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bv.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bf.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.b3.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bt.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.ca.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.a9.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.e.m.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.cd.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.b3.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.e.m.for(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.objectformatter.bt.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.e.p.l(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.e.p.void(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.e.p.l(Unknown Source)
        at com.crystaldecisions.reports.formatter.formatter.e.p.aE(Unknown Source)
        at com.crystaldecisions.reports.formatter.a.c.a(Unknown Source)
        at com.crystaldecisions.reports.formatter.a.c.if(Unknown Source)
        at com.crystaldecisions.reports.formatter.a.c.a(Unknown Source)
        at com.businessobjects.reports.sdk.b.b.int(Unknown Source)
        at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(Unknown Source)
        at com.crystaldecisions.proxy.remoteagent.x.a(Unknown Source)
        at com.crystaldecisions.proxy.remoteagent.q.a(Unknown Source)
        at com.crystaldecisions.sdk.occa.report.application.dd.a(Unknown Source)
        at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(Unknown Source)
        at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(Unknown Source)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(Unknown Source)
        at com.crystaldecisions.sdk.occa.report.application.PrintOutputController.export(Unknown Source)
        at com.crystaldecisions.reports.sdk.PrintOutputController.export(Unknown Source)
        at com.erm.controller.ALMReportsController.queryDll(ALMReportsController.java:1681)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:471)
        at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:408)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.erm.authentication.HttpSecurityFilter.doFilter(HttpSecurityFilter.java:658)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Unknown Source)
    Caused by: com.crystaldecisions.reports.queryengine.driverImpl.m: JDBC Error: [Microsoft][ODBC Driver Manager] Invalid string or buffer length
        at com.crystaldecisions.reports.queryengine.driverImpl.o.if(Unknown Source)
        at com.crystaldecisions.reports.queryengine.ap.if(Unknown Source)
        at com.crystaldecisions.reports.queryengine.l.bN(Unknown Source)
        at com.crystaldecisions.reports.queryengine.ap.eg(Unknown Source)
        at com.crystaldecisions.reports.queryengine.ap.e(Unknown Source)
        at com.crystaldecisions.reports.queryengine.b2.f(Unknown Source)
        at com.crystaldecisions.reports.queryengine.b2.dy(Unknown Source)
        ... 89 more
    Caused by: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid string or buffer length
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getBigDecimal(Unknown Source)

    A few things to note:
    1) Crystal Report 2013 doe snot install any SDK. Thus the assumption is that you are using CR from teh following link:
    SAP BusinessObjects - SAP Crystal Reports, Version For Eclipse Download
    2) Since you are using a 64 bit connection (Oracle Client 11g 62 bit ODBC driver) you will have to make sure you are using 64 bit JVM. Otherwise, follow Dell's advice and use a 32 bit ODBC datasource.
    3) On one test you are using Oracle Client 10g 32 bit ODBC driver and the other you are using Oracle Client 11g 64 bit ODBC driver. You might want to see if you can run your app using Client 11g 32 bit ODBC driver.
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada

  • Reports with many Dynamic Parameter

    Post Author: Lalit
    CA Forum: Data Connectivity and SQL
    Hi
    I created a report with 5 dynamic parameter in CR XI. There are total 6 SQL command . First one is used for the report purpose and rest is for parameter of the report. There SQL commands are not linked to each other. Performnce of the report is very slow. Data is coming fine on the report. The Command one is returning around 50000 records.
    Paramter are used in record selction to further filter the records
    Please help how i can increase the performance .
    Lalit

    Post Author: yangster
    CA Forum: Data Connectivity and SQL
    eeekwhy don't you create 5 business view objects based on each of your dynamic promptsthis way you can share these parameters in other reports instead of having them all imbedded inside a single reportyou should also be able to schedule the list of values too so they will load faster

  • Unable to snap to live with HTTP Dynamic streaming

    Hi there
    Am having an issue with Http dynamic live streaming, whereby the stream will not snap to the live point, despite calling the stop() action on the PlayTrait of the MediaElement. Instead, upon resuming playback the stream restarts from the point in the stream at which it was stopped - effectively acting as a pause of the stream, and continues to play. After checking at runtime, the Media Element does not have the DVRTrait, so I am not sure how this DVR like functionality is actually occuring?
    I have checked the manifest file (see below, with baseURl removed) and the dvrInfo parameter is not present, as is suggested in the documentation http://sourceforge.net/apps/mediawiki/osmf.adobe/index.php?title=Live_DVR_Rolling_Window_f or_HTTP_dynamic_streams
    From the documentation, the 'snap to live' functionality is meant to be as default, however this does not seem to be the case. Are there any other parameters that need to be configured, either on the FMS side, or in the code for the OSMF player in order for this to happen?
    <manifest xmlns="http://ns.adobe.com/f4m/2.0">
      <baseURL>http://XXXXXXXXXXXXXXXXXXXXX/_definst_/liveevent/</baseURL>
      <media href="_1_34.f4m" bitrate="400"/>
      <media href="_2_34.f4m" bitrate="600"/>
      <media href="_3_34.f4m" bitrate="800"/>
      <media href="_4_34.f4m" bitrate="1200"/>
      <media href="_5_34.f4m" bitrate="1500"/>
      <media href="_6_34.f4m" bitrate="1800"/>
      <media href="_7_34.f4m" bitrate="2200"/>
    </manifest>
    OSMF 2.0
    FMS 4.5
    HTTP Dynamic Live Streaming
    Thanks
    Steve

    Hi there
    Am having an issue with Http dynamic live streaming, whereby the stream will not snap to the live point, despite calling the stop() action on the PlayTrait of the MediaElement. Instead, upon resuming playback the stream restarts from the point in the stream at which it was stopped - effectively acting as a pause of the stream, and continues to play. After checking at runtime, the Media Element does not have the DVRTrait, so I am not sure how this DVR like functionality is actually occuring?
    I have checked the manifest file (see below, with baseURl removed) and the dvrInfo parameter is not present, as is suggested in the documentation http://sourceforge.net/apps/mediawiki/osmf.adobe/index.php?title=Live_DVR_Rolling_Window_f or_HTTP_dynamic_streams
    From the documentation, the 'snap to live' functionality is meant to be as default, however this does not seem to be the case. Are there any other parameters that need to be configured, either on the FMS side, or in the code for the OSMF player in order for this to happen?
    <manifest xmlns="http://ns.adobe.com/f4m/2.0">
      <baseURL>http://XXXXXXXXXXXXXXXXXXXXX/_definst_/liveevent/</baseURL>
      <media href="_1_34.f4m" bitrate="400"/>
      <media href="_2_34.f4m" bitrate="600"/>
      <media href="_3_34.f4m" bitrate="800"/>
      <media href="_4_34.f4m" bitrate="1200"/>
      <media href="_5_34.f4m" bitrate="1500"/>
      <media href="_6_34.f4m" bitrate="1800"/>
      <media href="_7_34.f4m" bitrate="2200"/>
    </manifest>
    OSMF 2.0
    FMS 4.5
    HTTP Dynamic Live Streaming
    Thanks
    Steve

  • Error: "Invalid string or buffer length" when using SQLColumns!

    I am calling SQLColumns through the Oracle ODBC driver to get the column information of a table. The Client version is 9.0.1.0 and the ODBC driver version is 9.0.1.8. If I am querying a table that does not has a long table name, fine; if I am querying a long table name, failed and reporting:
    [Oracle][ODBC]Invalid string or buffer length.
    Tried with MS Oracle driver, no problem. Anybody can help?
    Thanks in advance.

    the name is very long, like 'aaaabbbbccccddddeeeeffffrrrrdddaaa'. Maybe more than 20 charactors. I haven't find the exact number, before which SQLcolumns works, after which SQLColumns stop working.

  • InDesign XMP Not Working with Live Caption

    I have images in InDesign CS5 (Mac OS X 10.6..), and although they have XMP data (Set from Bridge), when I set with Live Caption, my caption always says "<No data from link>". I've set up captions in Objects > Captions... > Caption Setup - metadata to "Description" and the XMP data doesn't get put into the caption. I can see the XMP information in Links > Image >  XMP File Info... "Description". That's Fine. I've tried other user-defined fields, "Title, Keywords"  and none work in Live Caption. I've also been updating the images after setting the XMP data in Bridge. I've also just deleted the images and re-placed them. Still can't get live caption to work.
    I also saw a related thread where a user set file XMP via photoshop (CS5), which I also tried. When I do that, InDesign CS5 doesn't see the XMP data (via Links > XMP File Info). I can see it if set via Bridge, but can't make Live Caption work. If I set XMP via Photoshop, I can't see XMP data, and naturally can't set Live Caption.
    I could have done my project 5 times manually by now - but the fact this isn't working has been driving me crazy. Wondered if anyone has seen this or, hopefully, got it to work. And am I doing something wrong?
    Thanks,
    Matt

    I think this is a bug - probably in Photoshop (though the various engineering teams may disagree on this ).
    Here's what I did:
    Opened a TIFF image in Photoshop CS5, and confirmed that it had "Description" metadata.
    Placed it in InDesign CS5 and created a live caption which DID work.
    Saved the image as a PNG using "Save for Web and Devices" in Photoshop CS5 with metadata set to "All".
    Placed that PNG in InDesign CS5, and found that a live caption did NOT work
    Examined the PNG image in Bridge CS5, and found that the description WAS shown
    Opened the PNG image in Photoshop CS5, and found that the description field was empty (in fact all fields were).
    Looked at the "Raw Data" section in the File Info dialog box in Photoshop, and found that it was essentially empty.
    Opened the PNG in a hex editor, and found that the missing metadata WERE there, but somehow must be formatted/structured in a slightly incorrect way which somehow prevents Photoshop and InDesign from properly parsing the XML, but not so far afield as to prevent Bridge from doing so.
    I would suggest filing a bug report against Photoshop CS5 since it cannot read the metadata that one of its own components wrote into the file.

  • Report on PO items with acount assignement

    Hi Experts
    Is there any standard report for PO items with GL account information.
    Warm regards
    ramSiva

    Hi,
    Use reports;
    ME2K - Purchase Orders per Account Assignment
    ME2J - Purchase Orders per Project
    Note: - In Dynamic Selection option, enter the GL Account and run the report else in output, create a report layout with GL Account.

  • Calling Reporting Services Web Service with jQuery possible?

    Hi,
    is it possible to call the Reporting Services Web Service with jQuery? If yes, can someone post me a small example?
    Background:
    My plan is to create a html with a form which is also uploaded then into the reportserver. I open this html later by clicking a link in a report (with gotoURL open.window). The report opens the html inclusive the overtaken of some additional parameters
    (reportname, reportdescription). These parameters I will use in the html-form as defaultvalues for the corresponding input-text-fields. Now the user can make some changes (i.e. the decription). With a click on a button I will send the new description to
    the Reporting Services Web Service by using the SetProperties method, closing the html-window and reload the report. Important is that I want to upload the html also into the reportserver itself.
    I have already found how to consume a web service via jQuery but with the Reporting Services Web Service I did not get it running in my tests.
    I have referenced to the following jQuery.js: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
    Here you can see my tests I made with the results:
    $.ajax({
    type: 'POST',
    url: 'http://<..>/ReportServer/ReportService2010.asmx/ListChildren',
    data: {'ItemPath':'/','Recursive':false},
    complete: function(xData, status) {
    $('p').html($(xData.responseXML).text()); // result
    $("#divStatus").text( status ); // status }
    I got a NULL response with Status success. But where are the items?
    Another test which should response only one value was that:
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: "http://<..>/ReportServer/ReportService2010.asmx/GetItemType",
    data: {"Item":"/Development"}, // Development is a Folder in my Reportserver-Root
    dataType: "xml",
    success: function (msg) {
    $("#divResult").html(msg.responseXML);
    error: function (data, status, error) {
    $("#divResult").html("WebSerivce unreachable<br> <br>" + data.responseXML + "<br> <br>(" + error + ")");
    Here I got an [object Error]
    And here my last test:
    var soapMessage = '<?xml version="1.0" encoding="utf-8"?>\
    <soap:Envelope \
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" \
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">\
    <soap:Body>\
    <GetItemType xmlns="http://www.microsoft.com/sql/ReportingServer">\
    <ItemPath>/Development</ItemPath>\
    </GetItemType>\
    </soap:Body>\
    </soap:Envelope>';
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: http://<..>/ReportServer/ReportService2010.asmx?wsdl,
    data: soapMessage,
    dataType: "xml",
    success: processSuccess,
    error: processError
    function processSuccess(data, status, req) {
    if (status == "success")
    $("#response").text($(req.responseXML).find("Type").text());
    function processError(data, status, req) {
    alert(req.responseText + " " + status);
    Here I got an "Undefined error"
    Can anyone help me?
    Thanks
    René Illner

    Hi Rene,
    I have one vbscript class to call web services. May be if you need you can use it.
         dim ws
         set ws = new webservice
         ws.url = "http://servername/ReportServer/ReportService2010.asmx"
         ws.method = "MethodName"
         ws.parameters.Add "Parameter1", "Param1 Desc.."
         ws.parameters.Add "Parameter2","[email protected].."
         ws.execute
         set ws = nothing
    '------web service calling class
    class WebService
      public Url
      public Method
      public Response
      public Parameters
      public function execute()
        dim xmlhttp
        Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
        xmlhttp.open "POST", Url & "/" & Method, false
        xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xmlhttp.send Parameters.toString
        response = xmlhttp.responseText
        set xmlhttp = nothing
      end function
      Private Sub Class_Initialize()
        Set Parameters = new wsParameters
      End Sub
      Private Sub Class_Terminate()
        Set Parameters = Nothing
      End Sub
    End class
    class wsParameters
      public mCol
      public function toString()
        dim nItem
        dim buffer
        buffer = ""
        for nItem = 1 to Count
          buffer = buffer & Item(nItem).toString & "&"
        next
        if right(buffer,1)="&" then
          buffer = left(buffer,len(buffer)-1)
        end if
        toString = buffer
      end function
      public sub Clear
        set mcol = nothing
        Set mCol = CreateObject("Scripting.Dictionary")
      end sub
      public sub Add(pKey,pValue)
        dim newParameter
        set newParameter = new wsParameter
        newParameter.Key = pKey
        newParameter.Value = pValue
        mCol.Add mCol.count+1, newParameter
        set newParameter = nothing
      end sub
      public function Item(nKey)
        set Item=mCol.Item(nKey)
      end function
      public function ExistsXKey(pKey)
        dim nItem
        for nItem = 1 to mcol.count
          if mCol.Item(nItem).key = pKey then
            ExistsXKeyword = true
            exit for
          end if
        next
      end function
      public sub Remove(nKey)
        mCol.Remove(nKey)
      end sub
      public function Count()
        Count=mCol.count
      end function
      Private Sub Class_Initialize()
        Set mCol = CreateObject("Scripting.Dictionary")
      End Sub
      Private Sub Class_Terminate()
        Set mCol = Nothing
      End Sub
    end class
    class wsParameter
       public Key
       public Value
       public function toString()
         toString = Key & "=" & Value
       end function
    end class
    Regards, RSingh

  • Pivot tables in excel with Live Office

    Once I save a business objects XI R2 web intelligence report to excel format and schedule to users the excel which the users receive should have pivot tables and users should be able to add any fields of their choice in the report and view it similar to the excel pivot tables.As far as I know I will be able to achive this functionality using Live Office.Is there any other way how I can achieve this and also has anyone worked on this kind of requirement and can confirm this will work without any issues with live office?

    It is not possible to schedule the WebI reports in Excel format and use a predefined excel template for this.
    What your users CAN do is to add their own pivot tables from the scratch in the excel file that was generated and delivered to them according to the schedule.
    What you can do is use LiveOffice (have to install the plug-in on all user workstations though), bind the instances and deliver your users an excel file, which uses liveoffice to bind the scheduled webI report instances (eg. the latest instance). Your users can add the desired pivot table functionality on their own or you can predefine this in the excel file yourself.
    Which version of BO do you use?
    Regards,
    Stratos

  • Instrument reports: Input buffer overrun (Error -363)

    Hi all,
    I am currently trying to control an Ametek XG 12-240 DC power supply using LabVIEW 2013. I have downloaded all of the drivers from Ametek and can communicate with the device using NI MAX. When I run the "ametek simple example.vi" to set a current and voltage level and turn on the power output, I get
    "Error -363 occurred at Ametek XG Power Supply.lvlib:Error Query.vi 
    Possible reason(s):
    Instrument reports:
    Input buffer overrun;"
    I am new to LabVIEW and have not found any online solution to the problem. Any suggestions?
    Attachments:
    labview_error.JPG ‏107 KB
    labview_block_diagram.JPG ‏76 KB

    That's an IVI driver written by Ametek/Sorensen with a custom error code created by them. If you have CVI, you could perhaps debug the driver yourself. Otherwise, you might want to contact the vendor. Running I/O Trace would give you an idea of what commands are being sent.
    The last time I used one of their IVI drivers, ki had problems as well. Instead of doing any debug, I just spent a couple of hours writing a LabVIEW driver. A power supply is a simple instrument.

  • Using JOIN Function with NULL Dynamic Parameters

    I have a report with utilizes dynamic parameters but will not run if any of the parameters are null.  I am also using the JOIN function to print out the values of these parameters. If the user doesn't enter in all the parameters, can the report still run?

    Hi eburton 
    In CR 2008 we have optional parameter functionality, this will allow the report to run without parameter values.
    If you are not using CR2008 then the functionality is not available.
    Thanks,
    Sastry

  • Report for Purchasing Documents with Over Delivery or Under Delivery Tolera

    Dear All !
    please suggest me a report for Purchasing Documents with Over Delivery or Under Delivery Tolerance limit.
    thanks n regards
    Naagsekhar

    hi,
    Go to ME2N --> Use dynamic selection, choose for hte Puchase doc item --> here select for the over and under delivery and then execute the report..
    Hope it helps..
    Regards
    Priyanka.P

  • Data model with a dynamic table name

    Hi,
    I have report requirement, where in the table name in the data model query is unknown.So I use lexical parameter like " select * from &P_TABLE_NAME". This dynamic table is created and data populated in the before report trigger and table name is assigned to P_TABLE_NAME. The parameter P_TABLE_NAME has to be assigned an initial value otherwise the report errors with 'invalid table name' error. So I give a dummy table say 'DUMMY' as the initial value which has the same structure (with no data ) as the table that is being created in the before report trigger.
    The problem is that the data model query is being parsed ( and maybe executed ) even before the 'before report' trigger is run. As a result, the report o/p is empty, since the query used the DUMMY table for execution. But after the report completes, I can see the dynamic table being created with data.
    Question: Why is the before report trigger getting executed after the datamodel query is parsed and executed.
    Regards,
    Suresh

    Hi....
    yes, these are the settings I have:
    server folder: /Applications/MAMP/htdocs/dwphpelclasico
    web url:  http://localhost/dwphpelclasico/
    They should be correct. But I still get the message:
    Warning:  require_once(Connections/elclasico.php) [function.require-once]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/dwphpelclasico/list.php on line 1
    Could it be something with list.php?
    This is a new file I created to display my tableand  where I am inserted the record set.
    thanks

Maybe you are looking for