NetStream.onStatus handler for end of FLV

Hey,
Basically I want to cue an event when an FLV playing through
a netConnection/netStream is finished - if anybody has any tips
it'd be much appreciated.
I could put a CuePoint on the last frame of each FLV and use
an onCuePoint Event Handler - but there must be an easier way?
I'm assuming the 'NetStream.Play.Stop' Code Property won't do
the job because then simply pausing the Video would cause the event
to trigger, whereas I only want to trigger it at the very end of
the stream.
Is there a way of coding 'When my_ns.time == the last second
of the stream then perform function X'?
Thanks in advance for any assistance,
Justin.

It would really depend on how you are getting the video into
you .swf: if it's embeded or you're creating your own video
instance. Assuming you're creating your own instance of the video
player, you could set and event listening for a net status event
like so:
private function onNetStatus(evt:NetStatusEvent):void
if(evt.info.code == "NetStream.Play.Start")
isPlaying = true;
}else if (evt.info.code == "NetStream.Play.Stop") {
isPlaying = false;
trace("video stopped");
Then if you're watching the isPlaying variable, if it's shows
up as false you know the video isn't playing anymore and you could
then call another function.

Similar Messages

  • Check for end of .FLV

    OK so I have an .FLV playing in a div container. After and
    only after the viewer watches the complete .FLV I want a feedback
    form to come up. Now, should I use flash for this or html? What
    actionscript would I use for this ? Event.complete if thats even a
    valid command. Please help, thank you.

    It would really depend on how you are getting the video into
    you .swf: if it's embeded or you're creating your own video
    instance. Assuming you're creating your own instance of the video
    player, you could set and event listening for a net status event
    like so:
    private function onNetStatus(evt:NetStatusEvent):void
    if(evt.info.code == "NetStream.Play.Start")
    isPlaying = true;
    }else if (evt.info.code == "NetStream.Play.Stop") {
    isPlaying = false;
    trace("video stopped");
    Then if you're watching the isPlaying variable, if it's shows
    up as false you know the video isn't playing anymore and you could
    then call another function.

  • NetStream client handler

    Hi,
    I want to add an handler for onMetaData on my netStream Client.
    The onMetaData function is never called, but I know that the .flv file I'm playing contains metadata...
    public class CustomNetStream extends NetStream
         public function CustomNetStream(connection:NetConnection)
            super(connection);
            client = new NetClient();
            NetClient(client).addHandler(NetStreamCodes.ON_META_DATA, onMetaData);
            addEventListener(NetStatusEvent.NET_STATUS, onNetStreamStatus);
         public function onMetaData(value:Object):void
               NetClient(client).removeHandler(NetStreamCodes.ON_META_DATA, onMetaData);
               trace("Got metadata.");
        private function onNetStreamStatus(event:NetStatusEvent):void
           trace("onNetStreamStatus() - event.info.code=" + event.info.code);

    Hello!
    Do you need to handle metadata in NetStream descendant?
    If not I would have used a different approach.
    LightWeightedVideoElement has a property "client" that is being set to NetClient upon element load.
    So you may want to load an element and use that property instead of subclassing netstream.
    Regards!

  • Exception Handling for OPEN DATA SET and CLOSE DATA SET

    Hi ppl,
    Can you please let me know what are the exceptions that can be handled for open, read, transfer and close data set ?
    Many Thanks.

    HI,
    try this way....
      DO.
        TRY.
        READ DATASET filename INTO datatab.
          CATCH cx_sy_conversion_codepage cx_sy_codepage_converter_init
                cx_sy_file_authority cx_sy_file_io cx_sy_file_open .
        ENDTRY.
    READ DATASET filename INTO datatab.
    End of changes CHRK941728
        IF sy-subrc NE 0.
          EXIT.
        ELSE.
          APPEND datatab.
        ENDIF.
      ENDDO.

  • Exception handling for all the insert statements in the proc

    CREATE PROCEDURE TEST (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    if @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE [MONTH] BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND [YEAR] BETWEEN year(@StartDate) and year(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1
    A,B,C
    SELECT
    A,BC
    FROM XYZ
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT>0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    END--End of Main Begin
    I have the above proc inserting data based on parameters  where in @InsertCase  is used for case wise execution.
     I have written the whole proc with exception handling using try catch block.
    I have just added one insert statement here for 1 case  now I need to add further insert  cases
    INSERT INTO TAB4
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB3
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB2
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    I will be using following to insert further insert statements 
    if @InsertCase =1 
    I just needed to know where will be my next insert statement should be fitting int his code so that i cover exception handling for all the code
    Mudassar

    Hi Erland & Mudassar, I have attempted to recreate Mudassar's original problem..here is my TABLE script;
    USE [MSDNTSQL]
    GO
    /****** Object: Table [dbo].[TAB1] Script Date: 2/5/2014 7:47:48 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[TAB1](
    [COL1] [nvarchar](1) NULL,
    [COL2] [nvarchar](1) NULL,
    [COL3] [nvarchar](1) NULL,
    [START_MONTH] [int] NULL,
    [END_MONTH] [int] NULL,
    [START_YEAR] [int] NULL,
    [END_YEAR] [int] NULL
    ) ON [PRIMARY]
    GO
    Then here is a CREATE script for the SPROC..;
    USE [MSDNTSQL]
    GO
    /****** Object: StoredProcedure [dbo].[TryCatchTransactions1] Script Date: 2/5/2014 7:51:33 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[TryCatchTransactions1] (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    IF @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE START_MONTH BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND START_YEAR BETWEEN year(@StartDate) and YEAR(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1 (COL1,COL2,COL3)
    VALUES ('Z','X','Y')
    SELECT COL1, COL2, COL3
    FROM TAB1
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT > 0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    PRINT @SUCCESSMESSAGE
    END--End of Main Begin
    GO
    I am just trying to help --danny rosales
    UML, then code

  • End of Flv to go to next frame

    > This message is in MIME format. Since your mail reader
    does not understand
    this format, some or all of this message may not be legible.
    --B_3261382853_1599170
    Content-type: text/plain;
    charset="ISO-8859-1"
    Content-transfer-encoding: 8bit
    I have a flash movie with an external .flv file playing in
    it. I would like
    that once the video ends, it should play the next frame in
    the flash file, I
    have searched a lot on the net I can¹t seem to find
    anything easy to
    implment. Can someone help me pleaseeeeeeee?!??!
    --B_3261382853_1599170
    Content-type: text/html;
    charset="ISO-8859-1"
    Content-transfer-encoding: quoted-printable
    <HTML>
    <HEAD>
    <TITLE>End of Flv to go to next frame</TITLE>
    </HEAD>
    <BODY>
    <FONT FACE=3D"Helvetica, Verdana, Arial"><SPAN
    STYLE=3D'font-size:12.0px'>I hav=
    e a flash movie with an external .flv file playing in it. I
    would like that =
    once the video ends, it should play the next frame in the
    flash file, I have=
    searched a lot on the net I can&#8217;t seem to find
    anything easy to implm=
    ent. Can someone help me
    pleaseeeeeeee?!??!</SPAN></FONT>
    </BODY>
    </HTML>
    --B_3261382853_1599170--

    var vidList : Object = new Object();
    vidList.complete = function() {
    _level0.play(); //this is the action that occurs when the
    movie is finished
    vid.addEventListener ("complete",vidList);
    stop();
    The FLVPlayback component needs an instance name of vid for
    this to work

  • Specify handler for a logger in properties file

    Hello All,
    Is there a way of specifying a specific handler for a specific logger within the logging.properties file? I have not been able to find any documentation on the logging.properties file settings. I am looking for something like this:
    com.eric.program.handlers = java.util.logging.ConsoleHandler
    com.frank.handlers = java.util.logging.FileHandler
    I would rather keep all my settings within this properties file instead of coding it. If you know where I can find some documentation, please let me know. I am using J2SE 1.4.1.
    Thanks.

    Well, after failing to assign a handler to a specific logger, I checked the LogManager source code and, alas, it only supports assigning handlers to the root logger.
    What a bummer ... I think this is a real flaw in the LogManager design, especially since log4j supports assigning appenders to specific logger.
    The (more or less) good news is that LogManager is designed for subclassing (by j2ee container apps, but hey) ... so you can try to add this functionality to your own LogManager and use that through the system property java.util.logging.manager.
    import java.io.*;
    import java.security.*;
    import java.util.*;
    import java.util.logging.*;
    * All properties whose names end with ".handlers" are assumed to define a
    * whitespace separated list of class names for handler classes to load and
    * register as handlers on the logger (whose name corresponds to the property
    * prefix). Each class name must be for a Handler class which has a default
    * constructor.
    public class CustomLogManager extends LogManager
        public CustomLogManager()
            super();
         * Overwritten to also add handlers
        public synchronized boolean addLogger(Logger logger)
            final boolean res = super.addLogger(logger);
            final String property = logger.getName() + ".handlers";
            if ( null != getProperty(property) )
                setHandlers(logger, property);
            return res;
        // Taken from java/util/logging/LogManager.java#initializeGlobalHandlers()
        private void setHandlers(final Logger logger, final String property)
            // We need to raise privilege here.  All our decisions will
            // be made based on the logging configuration, which can
            // only be modified by trusted code.
            AccessController.doPrivileged(new PrivilegedAction() {
                public Object run() {
                    // Add new global handlers.
                    String names[] = parseClassNames(property);
                    for (int i = 0; i < names.length; i++) {
                        String word = names;
    try {
    Class clz = ClassLoader.getSystemClassLoader().loadClass(word);
    Handler h = (Handler) clz.newInstance();
    try {
    // Check if there is a property defining the
    // handler's level.
    String levs = getProperty(word + ".level");
    if (levs != null) {
    h.setLevel(Level.parse(levs));
    } catch (Exception ex) {
    System.err.println("Can't set level for " + word);
    // Probably a bad level. Drop through.
    logger.addHandler(h);
    } catch (Exception ex) {
    System.err.println("Can't load log handler \"" + word + "\"");
    System.err.println("" + ex);
    ex.printStackTrace();
    return null;
    // Taken from java/util/logging/LogManager.java
    // get a list of whitespace separated classnames from a property.
    private String[] parseClassNames(String propertyName) {
    String hands = getProperty(propertyName);
    if (hands == null) {
    return new String[0];
    hands = hands.trim();
    int ix = 0;
    Vector result = new Vector();
    while (ix < hands.length()) {
    int end = ix;
    while (end < hands.length()) {
    if (Character.isWhitespace(hands.charAt(end))) {
    break;
    if (hands.charAt(end) == ',') {
    break;
    end++;
    String word = hands.substring(ix, end);
    ix = end+1;
    word = word.trim();
    if (word.length() == 0) {
    continue;
    result.add(word);
    return (String[]) result.toArray(new String[result.size()]);
    On the other hand, it might be possible to write a reusable config class which does that kind of initialization, too.

  • Trouble Setting Up DML Handler for Journaling

    Hi Pat,
    I am trying to setup a simple DML handler for journaling of a table and cannot get it to work. Configuration is as follows:
    Source table
    Target table - updated via basic replication setup, this works fine.
    Target table journal - This table looks just like the original with additional columns for meta data about the transaction (i.e. trans_time, trans_type, trans_id..etc). Note: Did not use nested table technology.
    The problem is in compiling the user procedure for the DML handler we get an error on the INSERT part of the code:
    PL/SQL: ORA-00932: inconsistent datatypes: expected NUMBER got -
    The code is listed below and the error points to the usage of the lcr.GET_VALUE package regardless of the column.
    Can you tell me if this is a correct usage of that package/procedure? Can you provide any better examples of DML handlers,preferbly for journaling? I understand from another thread you may have a new set of doc coming out. Maybe that can help me?
    I have a WORD doc w/pics that can better articulate the situation if it will help. Any direction is truely appreciated.
    Best Regards,
    Tom
    P.S. Is Oracle consulting spun up on this technology? We are not adverse to having profesional help to reduce our spinup time.
    CREATE OR REPLACE PROCEDURE contact_point_journal_dml(in_any IN SYS.ANYDATA)
    IS
    lcr SYS.LCR$_ROW_RECORD;
    rc PLS_INTEGER;
    BEGIN
    -- Access the LCR
    rc := in_any.GETOBJECT(lcr);
    -- Insert information in the LCR into the contact_point_journal table
    INSERT INTO strmuser.contact_point_journal
    VALUES
    (lcr.GET_VALUE('NEW', 'CONTACT_POINT_ID'),
    lcr.GET_VALUE('NEW', 'EFFECTIVE_DT'),
    lcr.GET_VALUE('NEW', 'VERSION'),
    lcr.GET_VALUE('NEW', 'CREATED_BY'),
    lcr.GET_VALUE('NEW', 'CREATED_TS'),
    lcr.GET_VALUE('NEW', 'CONTACT_CODE_ID'),
    lcr.GET_VALUE('NEW', 'ADDRESS1'),
    lcr.GET_VALUE('NEW', 'ADDRESS2'),
    lcr.GET_VALUE('NEW', 'ADDRESS3'),
    lcr.GET_VALUE('NEW', 'ADDRESS4'),
    lcr.GET_VALUE('NEW', 'CITY'),
    lcr.GET_VALUE('NEW', 'COUNTY'),
    lcr.GET_VALUE('NEW', 'STATE_PROVINCE_CODE_ID'),
    lcr.GET_VALUE('NEW', 'POSTAL_CODE'),
    lcr.GET_VALUE('NEW', 'COUNTRY_CODE_ID'),
    lcr.GET_VALUE('NEW', 'GEO_CODE'),
    lcr.GET_VALUE('NEW', 'OTHER_CONTACT_POINT_VALUE'),
    lcr.GET_VALUE('NEW', 'EXPIRATION_DT'),
    lcr.GET_VALUE('NEW', 'LAST_MODIFIED_BY'),
    lcr.GET_VALUE('NEW', 'LAST_MODIFIED_TS'),
    SYSDATE,
    lcr.GET_COMMAND_TYPE(),
    lcr.GET_TRANSACTION_ID(),
    lcr.GET_SCN(),
    lcr.GET_SOURCE_DATABASE_NAME(),
    lcr.GET_OBJECT_OWNER(),
    lcr.GET_OBJECT_NAME(),
    '1',
    'A'
    -- Apply row LCR
    -- Command type code may be '03' instead of 'insert' ???
    -- Is the syntax correct for SET statement ???
    lcr.SET_COMMAND_TYPE('INSERT');
    lcr.EXECUTE(true);
    END;

    Hi Tom,
    The GET_VALUE method of an LCR$ROW_RECORD returns a SYS.ANYDATA type.
    You need to specify one of the static access functions to get the value of the correct type.
    Here is your dml_handler with the modifications:
    CREATE OR REPLACE PROCEDURE contact_point_journal_dml(in_any IN SYS.ANYDATA)
    IS
    lcr SYS.LCR$_ROW_RECORD;
    rc PLS_INTEGER;
    BEGIN
    -- Access the LCR
    rc := in_any.GETOBJECT(lcr);
    -- Insert information in the LCR into the contact_point_journal table
    INSERT INTO strmuser.contact_point_journal
    VALUES
    (lcr.GET_VALUE('NEW', 'CONTACT_POINT_ID').AccessNumber(),
    lcr.GET_VALUE('NEW', 'EFFECTIVE_DT').AccessDate(),
    lcr.GET_VALUE('NEW', 'VERSION').AccessNumber(),
    lcr.GET_VALUE('NEW', 'CREATED_BY').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'CREATED_TS').AccessTimestamp(),
    lcr.GET_VALUE('NEW', 'CONTACT_CODE_ID').AccessNumber(),
    lcr.GET_VALUE('NEW', 'ADDRESS1').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'ADDRESS2').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'ADDRESS3').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'ADDRESS4').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'CITY').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'COUNTY').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'STATE_PROVINCE_CODE_ID').AccessNumber(),
    lcr.GET_VALUE('NEW', 'POSTAL_CODE').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'COUNTRY_CODE_ID').AccessNumber(),
    lcr.GET_VALUE('NEW', 'GEO_CODE').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'OTHER_CONTACT_POINT_VALUE').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'EXPIRATION_DT').AccessDate(),
    lcr.GET_VALUE('NEW', 'LAST_MODIFIED_BY').AccessVarchar2(),
    lcr.GET_VALUE('NEW', 'LAST_MODIFIED_TS').AccessTimestamp(),
    SYSDATE,
    lcr.GET_COMMAND_TYPE(),
    lcr.GET_TRANSACTION_ID(),
    lcr.GET_SCN(),
    lcr.GET_SOURCE_DATABASE_NAME(),
    lcr.GET_OBJECT_OWNER(),
    lcr.GET_OBJECT_NAME(),
    '1',
    'A'
    -- Apply row LCR, too
    lcr.EXECUTE(true);
    END;

  • Wait for end mp4 DIr 11.5

    Does anybody know how to make Director 11.5  wait for end of a mp4 (h264) video ?
    I made the upgrade to version 11.5 just for being able to import and control the MP4 as read I have read in the
    "Top features: Support for MP4, H.264, FLV, and F4V video formats and video streaming"

    It work perfectly, thanks Dean, and make me know in the next survey;
    I usually get it late.....
    I work with director since version 7, it's still a nice program for very professionals presentations.
    More versatile and productive than flash for our point of view.
    Fortunately I need poor programming knowledge but most graphic or communication skills.
    With mp4 I can introduce video as a graphic component so After Effect (as before Photoshop)
    became a contribution program.
    But.
    Flv doesn't work, is practically impossible to import the file into the timeline without having an error message.
    Mp4 sometimes is not visible, if I go to play in editing mode.
    Some suggestions?
    I'm working on a Boxx Extreme. Win XP 64bit , 4 quadcore, 2 Nvidia Quadro CX graphic cards

  • 3.2 to 4.1 Upgrade - Error Handling for Unavailable Database Links

    Hi,
    I'm having a 3.2 -> 4.1 upgrade issue related to error handling for failed database links.
    I have a conditional Exists button on a page that has a SQL query to linked tables. However, for the 10 minutes every day where the target of the database link is getting a cold backup, the query fails. In the old 3.2 apex I simply got an error inside the region where the button is located but otherwise the page was still visible:
    "Invalid exists/not exists condition: ORA-02068: following severe error from MYDBLINK ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist"
    However, in apex 4.1.0.00.32 I get the following unhandled error, and clicking "OK" takes me to the edit page when logged in as developer.
    i.e., the page can't be run at all while the database links are failing in this one region.
    Error Error processing condition.
    ORA-12518: TNS:listener could not hand off client connection
    Technical Info (only visible for developers):
    is_internal_error: true
    apex_error_code: APEX.CONDITION.UNHANDLED_ERROR
    ora_sqlcode: -12518
    ora_sqlerrm: ORA-12518: TNS:listener could not hand off client connection
    component.type: APEX_APPLICATION_PAGE_REGIONS
    component.id: 4
    component.name: Current Alerts
    error_backtrace:
    ORA-06512: at "SYS.WWV_DBMS_SQL", line 1041
    ORA-06512: at "APEX_040100.WWV_FLOW_DYNAMIC_EXEC", line 687
    ORA-06512: at "APEX_040100.WWV_FLOW_CONDITIONS", line 272
    General users see this:
    Error Error processing condition.
    ORA-01034: ORACLE not available ORA-02063: preceding line from MYDBLINK
    clicking "OK" takes user to another page, not sure how apex decides which, but not a concern at the moment.
    I've done a search and read the page http://www.inside-oracle-apex.com/apex-4-1-error-handling-improvements-part-1/ but the new apex error handling isn't clear to me, and I don't know if the apex_error_handling_example provided on that page would be applicable to this situation.

    Thanks Patrick.
    The PL/SQL Function Body returning boolean condition with:
    begin
        for l_check in (
          SELECT 1
           FROM myview@MYDBLINK
          WHERE ... ) loop
            return true;
        end loop;
        return false;
    exception when others then
        sys.htp.p('Invalid exists/not exists condition: ' || sys.htf.escape_sc(sqlerrm));
        return false;
    end; Resulted in a similar issue:
    Error Error processing condition.
    ORA-04052: error occurred when looking up remote object MYLINKUSER.myview@MYDBLINK
    ORA-00604: error occurred at recursive SQL level 3
    ORA-01033: ORACLE initialization or shutdown in progress
    ORA-02063: preceding line from MYDBLINK
      Technical Info (only visible for developers)
    is_internal_error: true
    apex_error_code: APEX.CONDITION.UNHANDLED_ERROR
    ora_sqlcode: -4052
    ora_sqlerrm: ORA-04052: error occurred when looking up remote object MYLINKUSER.myview@MYDBLINK
    ORA-00604: error occurred at recursive SQL level 3
    ORA-01033: ORACLE initialization or shutdown in progress
    ORA-02063: preceding line from MYDBLINK
    component.type: APEX_APPLICATION_PAGE_REGIONS
    component.id: 4
    component.name: Current Alerts
    error_backtrace:
    ORA-06512: at "SYS.WWV_DBMS_SQL", line 904
    ORA-06512: at "APEX_040100.WWV_FLOW_DYNAMIC_EXEC", line 588
    ORA-06512: at "APEX_040100.WWV_FLOW_CONDITIONS", line 148However, I created a view with the same query:
    CREATE OR REPLACE VIEW v_localview (ALERT_1)
    AS
    SELECT 1
      FROM myview@MYDBLINK ...then change the condition to look at the local view:
    begin
        for l_check in (
          select alert_1 from v_localview ) loop
            return true;
        end loop;
        return false;
    exception when others then
        sys.htp.p('Invalid exists/not exists condition: ' || sys.htf.escape_sc(sqlerrm));
        return false;
    end;As a view is simply a query I'm surprised this should make any difference but it now looks similar to the 3.2 error, inside the region, when the linked database gets its morning cold backup, and this is fine:
    Invalid exists/not exists condition: ORA-12518: TNS:listener could not hand off client connection

  • Event Handling for messages

    I would like to know how to handle events for messages i maintained in zmesg01.
    messages are follow:    when gv_spfli is initial
                                 "No such flight available.
                                when  gv_scarr is initial.
                                  "Flight name not available          with help of raise event ?
    pls suggest.
    *       CLASS lcl_mytestclass DEFINITION
    class lcl_mytestclass definition.
    public section.
       data: gt_spfli type table of spfli initial size 20,
               gt_scarr type table of scarr initial size 20.
       methods: get_data.
       events: data_not_found.
    endclass.                    "lcl_mytestclass DEFINITION
    *       CLASS lcl_mytestclass IMPLEMENTATION
    class lcl_mytestclass implementation.
    method: get_data.
       select * from spfli into table gt_spfli.
       if ( sy-subrc <> 0 ).
         raise event data_not_found.
         endif.
    select * from scarr into gt_scarr
    for all entries in gt_flight where  carrname = gt_spfli-carrname.
    if sy-subrc  <> 0.
    " How to call event for flight_name_not_found ?"
    raise event flight_name_not_found.
      endmethod.                    "get_data
      endclass.                    "lcl_mytestclass IMPLEMENTATION
    *       CLASS handler DEFINITION
    class handler definition.
    public section.
       methods handle_event
               for event data_not_found of lcl_mytestclass.
    endclass.                    "handler DEFINITION
    *       CLASS handler IMPLEMENTATION
    class handler implementation.
    method handle_event.
       write: / 'Data not found'.
    endmethod.                    "handle_excess
    endclass.                    "handler IMPLEMENTATION
    data: oref type ref to lcl_mytestclass,
         h1   type ref to handler.
    start-of-selection.
    create object: oref, h1.
    set handler h1->handle_event for all instances.
    call method oref->get_data.
    Thanks in advance.
    Anee.

    Hello Anee
    Events are not used for this kind of message handling.
    If you want to collect all messages then use a message handler (see sample report ZUS_SDN_ABAP_OO_MSG_HANDLING ).
    Alternatively, you may define an exception class and raise a class-based exception which contains the detailed error message.
    The following sample report is based on the more elaborate Wiki posting
    [Message Handling - Finding the Needle in the Haystack|https://wiki.sdn.sap.com/wiki/display/profile/2007/07/09/MessageHandling-FindingtheNeedleintheHaystack]
    *& Report  ZUS_SDN_ABAP_OO_MSG_HANDLING
    *& Thread: Event Handling for messages
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1052131"></a>
    REPORT  zus_sdn_abap_oo_msg_handling.
    TYPE-POOLS: abap.
    *       CLASS lcl_mytestclass DEFINITION
    CLASS lcl_mytestclass DEFINITION.
      PUBLIC SECTION.
        DATA: gt_spfli TYPE TABLE OF spfli INITIAL SIZE 20,
                gt_scarr TYPE TABLE OF scarr INITIAL SIZE 20.
        METHODS: constructor.
        METHODS: get_data
                       IMPORTING
                     value(id_carrid) TYPE s_carr_id.
        METHODS: has_messages
                   RETURNING value(rd_result)  TYPE abap_bool.
        METHODS: display_messages.
        EVENTS: data_not_found.
      PROTECTED SECTION.
        DATA: mo_msglist    TYPE REF TO if_reca_message_list.
    ENDCLASS.                    "lcl_mytestclass DEFINITION
    *       CLASS lcl_mytestclass IMPLEMENTATION
    CLASS lcl_mytestclass IMPLEMENTATION.
      METHOD constructor.
        me->mo_msglist = cf_reca_message_list=>create( ).
      ENDMETHOD.                    "constructor
      METHOD has_messages.
        IF ( me->mo_msglist->is_empty( ) = abap_false ).
          rd_result = abap_true.
        ENDIF.
      ENDMETHOD.                    "has_messages
      METHOD display_messages.
    * define local data
        DATA:
          ld_handle           TYPE balloghndl,
          lt_log_handles      TYPE bal_t_logh,
          ls_profile          TYPE bal_s_prof.
        " Get log handle of collected message list
        ld_handle = me->mo_msglist->get_handle( ).
        APPEND ld_handle TO lt_log_handles.
    *   get a display profile which describes how to display messages
        CALL FUNCTION 'BAL_DSP_PROFILE_DETLEVEL_GET'
          IMPORTING
            e_s_display_profile = ls_profile.  " tree & ALV List
    *   set report to allow saving of variants
        ls_profile-disvariant-report = sy-repid.
    *     when you use also other ALV lists in your report,
    *     please specify a handle to distinguish between the display
    *     variants of these different lists, e.g:
        ls_profile-disvariant-handle = 'LOG'.
        CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
          EXPORTING
            i_s_display_profile          = ls_profile
            i_t_log_handle               = lt_log_handles
    *       I_T_MSG_HANDLE               =
    *       I_S_LOG_FILTER               =
    *       I_S_MSG_FILTER               =
    *       I_T_LOG_CONTEXT_FILTER       =
    *       I_T_MSG_CONTEXT_FILTER       =
    *       I_AMODAL                     = ' '
    *     IMPORTING
    *       E_S_EXIT_COMMAND             =
          EXCEPTIONS
            profile_inconsistent         = 1
            internal_error               = 2
            no_data_available            = 3
            no_authority                 = 4
            OTHERS                       = 5.
        IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDMETHOD.                    "display_messages
      METHOD: get_data.
        SELECT * FROM spfli INTO TABLE gt_spfli
          WHERE ( carrid = id_carrid ).
        IF ( sy-subrc NE 0 ).
    **      RAISE EVENT data_not_found.
          IF 1 = 2. MESSAGE e154(bc_datamodel_service). ENDIF.
    *   Flight not found (table SFLIGHT)
          CALL METHOD me->mo_msglist->add
            EXPORTING
    *          is_message   =
              id_msgty     = 'E'
              id_msgid     = 'BC_DATAMODEL_SERVICE'
              id_msgno     = '154'
    *          id_msgv1     =
    *          id_msgv2     =
    *          id_msgv3     =
    *          id_msgv4     =
              id_detlevel  = '1'
    *        IMPORTING
    *          es_message   =
        ENDIF.
        IF ( gt_spfli IS INITIAL ).
        ELSE.
          SELECT * FROM scarr INTO TABLE gt_scarr
          FOR ALL ENTRIES IN gt_spfli
            WHERE  carrid = gt_spfli-carrid.
        ENDIF.
        IF ( gt_scarr is initial ).
          " How to call event for flight_name_not_found ?"
    **        RAISE EVENT flight_name_not_found.
          IF 1 = 2. MESSAGE e159(bc_datamodel_service) WITH '&all'. ENDIF.
    *   Airline & not found
          CALL METHOD me->mo_msglist->add
      EXPORTING
    *          is_message   =
        id_msgty     = 'E'
        id_msgid     = 'BC_DATAMODEL_SERVICE'
        id_msgno     = '159'
        id_msgv1     = '&all'
    *          id_msgv2     =
    *          id_msgv3     =
    *          id_msgv4     =
        id_detlevel  = '2'
    *        IMPORTING
    *          es_message   =
        ENDIF.
      ENDMETHOD.                    "get_data
    ENDCLASS.                    "lcl_mytestclass IMPLEMENTATION
    *       CLASS handler DEFINITION
    CLASS handler DEFINITION.
      PUBLIC SECTION.
        METHODS handle_event
                FOR EVENT data_not_found OF lcl_mytestclass.
    ENDCLASS.                    "handler DEFINITION
    *       CLASS handler IMPLEMENTATION
    CLASS handler IMPLEMENTATION.
      METHOD handle_event.
        WRITE: / 'Data not found'.
      ENDMETHOD.                    "handle_excess
    ENDCLASS.                    "handler IMPLEMENTATION
    DATA: oref TYPE REF TO lcl_mytestclass,
         h1   TYPE REF TO handler.
    PARAMETER:
      p_carrid    TYPE s_carr_id DEFAULT 'AA'.
    START-OF-SELECTION.
    START-OF-SELECTION.
      CREATE OBJECT: oref, h1.
    **  SET HANDLER h1->handle_event FOR ALL INSTANCES.
      CALL METHOD oref->get_data( p_carrid ).
      IF ( oref->has_messages( ) = abap_true ).
        oref->display_messages( ).
      ENDIF.
    END-OF-SELECTION.
    Regards
      Uwe

  • How to find event handler for save button in salesorders

    Hi,
    I want perform event based on save button in salesorders.Can you tell me how to find the event handler for
    save button.
    Regards,
    Brahmaji

    Brahma,
    you can find the component, view details by doing an F2.
    open the component, the view will be mostly an overview page i.e., the name ends OP etc.,
    But your method name will be mostly EH_ONSAVE, you need to find exact view.
    F2 does not come up properly for overview pages, you have to look into UI config tool preview and make sure sometimes.
    Regards,
    Masood Imrani S.

  • Unable to get automatic event handling for OK button.

    Hello,
    I have created a form using creatobject. This form contains an edit control and Search, Cancel buttons. I have set the Search buttons UID to "1" so it can handle the Enter key hit event. Instead its caption changes to Update when i start typing in the edit control and it does not respond to the Enter key hit. Cancel happens when Esc is hit.
    My code looks like this -
    Dim oCreationParams As SAPbouiCOM.FormCreationParams
            oCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)
            oCreationParams.UniqueID = "MySearchForm"
            oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Sizable
                    Dim oForm As SAPbouiCOM.Form = SBO_Application.Forms.AddEx(oCreationParams)
    oForm.Visible = True
    '// set the form properties
            oForm.Title = "Search Form"
            oForm.Left = 300
            oForm.ClientWidth = 500
            oForm.Top = 100
            oForm.ClientHeight = 240
            '// Adding Items to the form
            '// and setting their properties
            '// Adding an Ok button
            '// We get automatic event handling for
            '// the Ok and Cancel Buttons by setting
            '// their UIDs to 1 and 2 respectively
            oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
            oButton = oItem.Specific
            oButton.Caption = "Search"
            '// Adding a Cancel button
            oItem = oForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 75
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
            oButton = oItem.Specific
            oButton.Caption = "Cancel"
    oItem = oForm.Items.Add("NUM", SAPbouiCOM.BoFormItemTypes.it_EDIT)
            oItem.Left = 105
            oItem.Width = 140
            oItem.Top = 20
            oItem.Height = 16
            Dim oEditText As SAPbouiCOM.EditText = oItem.Specific
    What changes do i have to make to get the enter key to work?
    Thanks for your help.
    Regards,
    Sheetal

    Hello Felipe,
    Thanks for pointing me to the correct direction.
    So on refering to the documentation i tried out a few things. But I am still missing something here.
    I made the following changes to my code -
    oForm.AutoManaged = True
    oForm.SupportedModes = 1 ' afm_Ok
    oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
    oItem.SetAutoManagedAttribute(SAPbouiCOM.BoAutoManagedAttr.ama_Visible, 1, SAPbouiCOM.BoModeVisualBehavior.mvb_Default)
            oButton = oItem.Specific
            oButton.Caption = "OK"
    AND
    oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE
    oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
            oItem.Left = 5
            oItem.Width = 65
            oItem.Top = oForm.ClientHeight - 30
            oItem.Height = 19
    oItem.AffectsFormMode = False
    I get the same behaviour OK button changes to update and enter key does not work.
    Could you please tell me find what is it that i am doing wrong?
    Regards,
    Sheetal

  • Error in creating IO file handles for job (number 3152513)

    Hi All -
    I am using Tidal 5.3.1.307. And the Windows agent that is running these jobs is at 3.0.2.05.
    Basically the error in the subject was received when starting a particular job once it was cancelled and a couple of other different jobs a few days before. These jobs have run successfully in the past.
    This particular job was running for 500+ minutes when it should run at an estimated 40 minutes. At that time it would not allow for a re-start of the job, it just stayed in a launched status.
    Trying to figure out what causes this error.
    Error in creating IO file handles for job 3152513
    Note - from that being said we were to see 2 instances of this process running at the same time, we noticed some blocking on the DB side of things.
    Trying to figure out if this is a known tidal issue or a coding issue or both.
    Another side note, after cancelling the 2nd rerun attempt the following error was encountered: Error activating job, Duplicate.
    When we did receive the Error creating IO file, the job did actually restart, but Tidal actually lost hooks into it and the query was still running as an orphan on the db server.
    Thanks All!

    The server to reboot is the agent server.  You can try stopping the agent and then manually deleting the file.  That may work.  When the agent is running the agent process may keep the file locked, so rebooting may not be sufficient.
    The numerical folders are found as sub-directories off of the services directory I mentioned.  I think the numbers correspond to the job type, so one number corresponds to standard jobs, another to FTP jobs.  I'd just look in the numbered directories until you find a filename matching the job number.
    The extensions don't really matter since you will want to delete all files that match your job number.  There should only be one or two files that you need to delete and they should all be in the same numbered sub-directory.
    As to the root cause of the problem, I can't really say since it doesn't happen very often.  My recollection is that it is either caused by a job blowing up spectacularly (e.g. a memory leak in the program being launched by Tidal) or someone doing something atypical with the client.

  • How to find out the set handler for a particular signal?

    I have an interesting puzzle to solve. l'm investigating problems with someone else's code and I'd like to get the name of the handler that is set for SEGV. psig shows that the process catches SEGV, however I don't have access to the source code for all the libraries it links against and none of the source code I have sets a handler for SEGV. Is there a way to find out the name of the signal handler that is set for a particular signal in a process? I'm sure the source was compiled with cc -g. Solaris 8

    Hello Haritha,
    Please follow the path.
    Go to RSA1 -> Metadata Repository ->DataStore Objects(ODS) -> Find you DSO(ODS) there and click on that, you will get all the details(Queries, Objects - Char, Key figures, update rules,etc..) related to that particular DSO(ODS), same is the case for Cube as well.
    Please assign points.

Maybe you are looking for

  • How to change the Hyper links color in the XML form

    HI SDNs Do u have any idea how to change the hyperlink color in the xml form. My requirement is as follows.I have created xml form by using xml template and i displayed this xml form by using Km document iview.  I need tochange the hyper link color i

  • Lion Boot Camp Windows Migration Assistant Recovery

    "Some features of Mac OS X Lion are not supported for the disk (volume name)" appears during installation" The disk has a non-standard Boot Camp partition setup, where further partitioning was performed after running Boot Camp Assistant, or the confi

  • "Sub Menus" Disappear and I can't change settings

    Hi Everyone, I am having a frusterating problem...and it is happening all over Illustrator. If you look at the attached image below, you can see that the gradient window is open, and I have click on the "gradient colors", to select what my gradient c

  • IWeb and stills - re-sizing?

    I've done a quite elaborate website for a film I'm producing.  I'd like to use the work I did on the website in a press-kit I'm preparing.  Can I use the iWeb project to pull stills for the press kit ... and still get the original resolution of the s

  • Why did I have to enable Windows File Sharing to share files between two Mavericks iMacs?

    File Sharing failed between my Mavericks iMacs.  The console logs showed that the target iMac saw the ntlmv2 protocol as unknown to the kdc.  I fixed it by enabling Windows File Sharing on the target Mavericks iMac.  I had tried disabling SMB on both