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
-
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. -
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
MudassarHi 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’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 -
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,
BrahmajiBrahma,
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,
SheetalHello 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