HP Data Protector interface for RMAN

Hello,
I would appreciate if someone can share the experience of using HP Data Protector (... earlier it was called OmniBack) with RMAN for backup and recovery
I want to know the benefits of using the data protector interface. The cost implications are really high and I am of the opinion to use RMAN to backup on a disk and using normal filesystem backup of HP Data protector to take the backups on tape
This kind of arrangement would essentially require the dba to go to RMAN to find out which all files are required to be restored, then use data protector to find out the tape that needs recall. Restore required files using DP and use RMAN for recovery
Would the interface really make some difference? And would it be a good decision to spend so much on the Dataprotector interface for RMAN?
Regards
Sudhanshu Bhandari
Oracle 9i OCP DBA
PerotSystems TSI (UK) Ltd.

Hi,
I got here a setup that's like: HP DataProtector, PROD-DB, STANDBY-DB
Roughly, the PROD-DB is 350Gb.
I backup this via a standard HPDP filesystem backup (+-1hour to run) applied to the standby (Data Guard) database (shutdown at backup time).
I'm glad I got HPDP when I have to restore PROD-DB on TEST-DB.. 2 clicks and it's done.
Note that I don't use RMAN for that, it is somewhat not needed in this setup. What if some day i decide to use RMAN? I think that I'll use something kind of like what you propose. It allows you to:
. manage what/when to backup. For example, cron a TS1 backup at day 1, cron a TS2 backup at day 2, ... every day: filesystem backup/purge via HPDP.
. easily restore your DB provided your DBA knows some stuff about HPUX admin... (what if this is a HDD failure? how to fix EVAs? is this in a HP Cluster? ...?)
Anyway, to get back to your main question:
Would the interface really make some difference? Yes, of course. Nowadays lots of people don't like command line *sigh* and would be more attracted if it looks simpler (though it offers less possibilities). With an interface you'll certainly feel safe than via shell scripting.
And would it be a good decision to spend so much on the Dataprotector interface for RMAN?As for me, no. In the setup I explained at the beginning, I got many advantages over a RMAN backup, backed up via HPDP. First, it's simpler to manager: I just have to check my morning mail to see if the backup went OK. Then, I'm sure if I loose the main DB, I can switch to standby quickly (can't afford much downtime). This means that if all of this fails (uh oooh) I'll have to restore the tapes, and this will be the last thing I'd want to do because it'll take ages (+-3h for the whole thing).
In each of these steps I use a single tool.. reducing chair-computer interface error chances. Look how many different layers you'll get in your setup (4+).
This was my 2cents,
HTH
Yoann.
Of course, via RMAN, you don't backup empty space (compress), the recovery granularity is way better (blockrecover), etc. But the main question is: do you really need RMAN? If the answer is yes, then go on with the DP RMAN interface to easy your admin's life. If no, then just drop the idea.

Similar Messages

  • HRMS database Interface for Timecard Data

    I am new to working with the Oracle Apps database. I need to setup an interface to send time card data from a third party app into the HRMS system. The data I have consists of an Employee Identifier (Can be set to match the HRMS employee identifier), Payroll Cycle Date, Hours Classification (Regular, Overtime, Double Time, etc), and the number of hours for that classification.
    What would be the best method/API for accomplishing this? I am aware of Data Pump, BEE, and direct API calls as ways to do this, but am unsure about which one is best/easiest to use. For APIs, which one would be best for me to use?
    Thank you in advance for any information / ideas that you have.

    Thanks for your help so far...I have two more questions for you
    Where can I find/download HRMS Family Pack K?
    Does the BEE Interface have API's that can feed it? And if so, is there any examples of using that API interface for me to look at? Also, is there documentation available that can help me use that API?
    Sorry for asking so many simple questions...And thank you very much for your assistance!
    Bran

  • How to have a web-based interface for Lumira that also performs Ad-Hoc visualizations on data that should be loaded live from HANA.

    How to have a web-based interface for Lumira that also performs Ad-Hoc visualizations on data that should be loaded live from HANA. I have another tool that puts data into HANA, So don't want to reload this new data into Lumira every time I want to run a report.
    so do i  have the ability to create polished ad hoc dashboards, reports, infographics and storyboards Apart from Ad-Hoc reports, I also need a dashboard with some fixed reports that update with the live data.
    So please suggest me to accomplish this task.
    Thanks and regards
    Shashi kiran

    Please have a look at Ludek's document here which contains links: SAP Lumira Family Supported Versions Matrix
    Ludek has also attached the PAM's as zipped files; Lumira comes in many flavors so I encourage you to research options
    Also see this "HANA Live" document: [SAP HANA Academy] Visualized: Lumira & HANA

  • Interface for retrieving CVS data

    Hi
    I want to write an interface for retrieving cvs data,like the last person toupdate the file,the last date and everything visible in cvs log..
    Can anyone help me in designing the interface,and also is there any api's available for this
    Please reply soon..
    Thanks and regards
    Sumit

    For simple CSV files that you generate yourself, that should indeed be more than enough. The standard CSV files that most applications output have some more rules however, and Excel breaks those rules
    (sigh).
    Check this out:
    http://ostermiller.org/utils/CSV.html

  • Rman backup to data protector

    We recently migrated from Tivoli to HP Data Protector.   All the RMAN scripts are stored in DP.
    Currently we don't have any control to stop or start the backup.  Every time we need to talk to storage team to get the things done (during maintenance activity)
    Is this the way it is operated where DP is used ?
    Is there any other way we can control the rman backup script execution ?   Is there any drawback if we run it directly from the shell/cron ?
    I was told that DP maintains its own recovery policy, due to which it has to be run from the DP.

    Not an Oracle error so you need to take this up with your other vendors.
    Vendor specific error: OB2_WriteObjData() failed! ERR(-2)           <----------------
    ORA-19502: write error on file "srmdtscl_sbldb_ora_full<sbldb_4593:765762443:1>.dbf", blockno 885712641 (blocksize=1024)
    ORA-27030: skgfwrt: sbtwrite2 returned error
    ORA-19511: Error received from media manager layer, error text:     <----------------

  • Interface for loading data into customer products

    I am trying to find if there is any interface for loading Customer products in Install Base apart from entering them manually. I understand that this exists in Oracle Apps version 11.5.7 but I need this for version 11.5.4.

    Hi,
    In 11.5.4 , you've to write yourself the loader, using Oracle standard API.
    I've performed it, it is working fine.
    Hugues

  • HP Data Protector to backup Unity

    Does anyone have any experience using HP Data Protector to backup the exchange and sqlserver data to a central backup server. Are these done with the databases/application running or is it best to shutdown and backup
    Thanks

    I have been trying to do the same thing for a few days now. It seems there is no documentation anywhere that explains how to restore to a new machine. In my case I want to take my production DB and move it in its entirety to a test DB. The Oracle DB versions are exactly the same yet I cannot find out how to get this done.
    Were you able to finally get this accomplished? I also use data protector 6 to take my RMAN backups. Any help would be appreciated.
    Even if I had to take a new backup to disk instead of to tape that would be fine. I just cant seem to find the steps for restoring an RMAN backup to a new machine.
    TIA
    Scott

  • Data protector v8.1 lifecycle

    Dear All,
    Our data protector using version 8.1, anyone know when is the end of support for version 8.1?
    Thanks!
    Nicky

    3rd party backup tools that support  Microsoft SQL server do not have
    any special modules or interfaces for SAP. You must use the modules for
    the relevant version of the SQL server. If you have queries relating to
    certification or support, please contact the manufacturer of the 3rd
    party tool.

  • Preference for RMAN

    Is there any overriding preference for the use of RMAN over user-managed backups?
    After learning about RMAN, it kind of gives me a wary feeling. Our philosophy has always been to run scripts whose programming is clearly understood, as opposed to relying on GUI tools.
    Even though RMAN has a command line interface, it still strikes me as a GUI tool, as the only way to recover data saved away by RMAN is to use RMAN. I'm much more comfortable with copying actual datafiles for backup.
    What's the general consensus about RMAN?
    -Chuck

    Chuck-
    I agree. Although I do use RMAN as well as User managed.
    I find that I am much more comfortable doing a user managed backup at critical points in time.
    We do not have an OLTP system and I can take it down whenever I feel the need as long as the users are aware of the outage.
    I have found that it is easier to restore from a major media failure with user managed backups.

  • Access Denied in Data Protector 8 display when trying to view Devices and Media in the UI

    I installed Data Protector 8 User Interface from the program disk on some Windows Office 7 Lap Tops for my staff.  When they try to view Devices and Media, they get Access Denied.
    I see other consumers post this issue and it is a bug in Data Protector 8.
    Is there a fix for this issue?

    except that if it could publish to both swf/html5 today my project would run on desktop. Again the swf would help for running the desktop version of the project and mobile devices of course would pick html5.
    one - what seems to you does not need to seem to me hence ur own assumption
    two - I'm asking for advice and help, if you can please do if you can't no need to get personal
    Thank you

  • MaxDB backup problem through Data protector

    When I start the Online MaxDB database backup through Data Protector GUI the backup fails with error as below,
    Normal] From: BSM@ttcsap10 "MAXDB_Online" Time: 6/17/10 4:30:49 AM
    OB2BAR application on "ttcmaxdr" successfully started.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:50
    Executing the dbmcli command: `user_logon'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:50
    Executing the dbmcli command: `dbm_configset -raw set_variable_1 OB2OPTS=""'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:50
    Executing the dbmcli command: `dbm_configset -raw set_variable_2 OB2APPNAME=MAX'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:50
    Executing the dbmcli command: `dbm_configset -raw set_variable_3 OB2BARHOSTNAME=ttcmaxdr'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:50
    Executing the dbmcli command: `dbm_configset -raw set_variable_4 TimeoutWaitFiles=30'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:51
    Executing the dbmcli command: `dbm_configset -raw BSI_ENV /var/opt/omni/tmp/MAX.bsi_env'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:51
    Executing the dbmcli command: `medium_put BACKDP-Data[2]/1 /var/opt/omni/tmp/MAX.BACKDP-Data[2].1 PIPE DATA 0 8'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:51
    Executing the dbmcli command: `medium_put BACKDP-Data[2]/2 /var/opt/omni/tmp/MAX.BACKDP-Data[2].2 PIPE DATA 0 8'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:51
    Executing the dbmcli command: `util_connect'.
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:30:51
    Executing the dbmcli command: `backup_start BACKDP-Data[2] DATA'.
    [Critical] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:31:45
    Error: SAPDB responded with:
    -24988,ERR_SQL: SQL error
    -903,Host file I/O error
    3,Data backup failed
    17,Servertask Info: because Error in backup task occured
    10,Job 2 (Backup / Restore Medium Task) [executing] WaitingT170 Result=3700
    6,Error in backup task occured, Error code 3700 "hostfile_error"
    1,Backupmedium #1 (/var/opt/omni/tmp/MAX.BACKDP-Data[2].1) Wrong file type
    6,Backup error occured, Error code 3700 "hostfile_error"
    17,Servertask Info: because Error in backup task occured
    10,Job 1 (Backup / Restore Medium Task) [executing] WaitingT170 Result=3700
    6,Error in backup task occured, Error code 3700 "hostfile_error"
    [Normal] From: OB2BAR_SAPDBBAR@ttcmaxdr "MAX" Time: 06/17/10 04:31:45
    Executing the dbmcli command: `exit'.
    [Normal] From: BSM@ttcsap10 "MAXDB_Online" Time: 6/17/10 4:31:46 AM
    OB2BAR application on "ttcmaxdr" disconnected.
    [Critical] From: BSM@ttcsap10 "MAXDB_Online" Time: 6/17/10 4:31:46 AM
    None of the Disk Agents completed successfully.
    Session has failed.
    [Normal] From: BSM@ttcsap10 "MAXDB_Online" Time: 6/17/10 4:31:46 AM
    Backup Statistics:
    Session Queuing Time (hours) 0.00
    Completed Disk Agents ........ 0
    Failed Disk Agents ........... 0
    Aborted Disk Agents .......... 0
    Disk Agents Total ........... 0
    ========================================
    Completed Media Agents ....... 0
    Failed Media Agents .......... 0
    Aborted Media Agents ......... 0
    Media Agents Total .......... 0
    ========================================
    Mbytes Total ................. 0 MB
    Used Media Total ............. 0
    Disk Agent Errors Total ...... 0
    But I have noticed the error is because of this line as below,
    Executing the dbmcli command: `medium_put BACKDP-Data[2]/1 /var/opt/omni/tmp/MAX.BACKDP-Data[2].1 PIPE DATA 0 8'.
    Actually it should execute the dbmcli command as
    medium_put BACKDP-Data[2]/1 /var/opt/omni/tmp/MAX.BACKDP-Data[2].1 PIPE DATA 0 8 NO NO \" \" "BACK"
    But I donu2019t know where to make changes so that when I start the backup through DP GUI it should use backup tool as u201CBACKu201D
    But same DP backup specification is working through MaxDB Database Manager GUI.
    Any solution appreciatedu2026
    Thanks,
    Subba

    Hi Natalia,
    Thanks for the reply...Please find the answer as below,
    -> What is the version of Data Protector?
    Data Protector 5.5
    -> What is the version of the database?
    SAP MaxDB 7.6
    -> According your information you could use the DBMGUI to create the medium of u201CBACKu201D type and create the databackup using this medium. Correct?
    Yes
    The problems are with Data Protector GUI, not with MAXDB or DBMGUI. Correct?
    Yes
    Please let me know where to make any changes or any enviornment settings to be done in Data Protector GUI so that it will use the medium "BACK" as backup tool while i start the backup through Data Protector GUI.
    Thanks,
    Subba

  • Backup MaxDB 7.6 mit HP Data Protector; Wrong file type

    Hallo.
    Wir versuchen, eine MaxDB-Datenbank (Rel. 7.6) auf SUSE-LINUX unter Verwendung von HP Data Protector zu sichern. Der Versuch, das Backup durchzuführen, schlägt fehl, da auf dem MaxDB-Server anscheinend die Pipe nicht angelegt werden kann. Folgende Meldung wird ausgegeben:
    From: BSM-hph3000.thebis.de "Content_sdb_sdba"  Time: 26.04.2008 10:19:16
          OB2BAR application on "dell2950.thebis.de" successfully started.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `user_logon'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `dbm_configset -raw set_variable_1 OB2OPTS="(null)"'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `dbm_configset -raw set_variable_2 OB2APPNAME=SDB'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `dbm_configset -raw set_variable_3 OB2BARHOSTNAME=dell2950.thebis.de'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `dbm_configset -raw set_variable_4 TimeoutWaitFiles=30'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `dbm_configset -raw BSI_ENV /usr/omni/tmp/SDB.bsi_env'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `medium_put BACKDP-Data[1]/1 /usr/omni/tmp/SDB.BACKDP-Data[1].1 PIPE DATA 0 8'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `util_connect'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:22
          Executing the dbmcli command: `backup_start BACKDP-Data[1] DATA'.
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:23
          Error: SAPDB responded with:
          -24988,ERR_SQL: SQL error
          -903,Host file I/O error
          3,Data backup failed
          1,Backupmedium #1 (/usr/omni/tmp/SDB.BACKDP-Data[1].1) Wrong file type
          6,Backup error occured, Errorcode 3700 "hostfile_error"
          17,Servertask Info: because Error in backup task occured
          10,Job 1 (Backup / Restore Medium Task) WaitingT131 Result=3700
          6,Error in backup task occured, Errorcode 3700 "hostfile_error"
    From: OB2BAR_SAPDBBAR-dell2950.thebis.de "SDB"  Time: 04/26/08 10:16:23
          Executing the dbmcli command: `exit'.
    From: BSM-hph3000.thebis.de "Content_sdb_sdba"  Time: 26.04.2008 10:19:18
          OB2BAR application on "dell2950.thebis.de" disconnected.
    From: BSM-hph3000.thebis.de "Content_sdb_sdba"  Time: 26.04.2008 10:19:18
          None of the Disk Agents completed successfully.
          Session has failed.
    Ein Versuch, die Pipe /usr/omni/tmp/SDB.BACKDP-Data[1].1 manuell auf dem MaxDB-Server anzulegen, schlug ebenso fehl. Eine Pipe /usr/omni/tmp/SDB.BACKDP-Data kann angelegt werden.
    Frage 1) Hat jemand ein ähnliches Problem und dazu eine Lösung?
    Frage 2) Wo ist hinterlegt, welchen Medium-Name der Data Protector beim command "medium_put" verwenden soll?
    Danke für Eure Hilfe!
    Gruß
    Gerhard Krauß
    Heidelberg

    Hi Marcus,
    we use the version 5.5.
    The pipe name is generated by the Data Protector. When I want to create manually a pipe with this name I got the message "No hit found".
    Do you know a  possibilty where we can configure (at Data Protector or MaxDB) which medium name should be used for creating the pipe?
    Thanks a lot!
    Gerhard

  • Data conversion strategy for new SOB

    Dear Viewers
    on 11.5.10
    We are creating a new SOB with a change in currency from Feb-11 as this is the requirement
    For the same, we need to do data conversion.
    I have a confusion for Purchase Orders and Sales Orders
    Purchase Orders:
    Open purchase orders will be converted, means the unfulfilled PO`s i.e the ones not received and are fully open.
    The PO`s which have been recieved but not delivered, Requested the users to clear the intransit receipts.
    The PO's which are partially received, what to be done for them?
    If a PO is fully received and Delivered will not me converted to the new SOB as its not an open PO
    but If invoice comes after Feb-11, than how the matching will be done?
    What if a return has to be made moving forward in FEB-11 under new SOB
    Sales Orders:
    Open sales orders will be converted, that is the ones that have been entered and not yet booked.
    Users have been requested to clear off the Sales order lines which are already pick confirmed but not yet shipped, hence they will be shipped and interfaced to AR
    For the Sales orders that have been booked, those lines that are not yet processed further will also be converted.
    Now what if a receipt comes after feb 11, how to handle this as the sales order wiould not have been converted?
    Please give your advise on the data migration strategy for PO`s and SO's.
    Please do add any point that may have been missed by me
    Appreciate your help
    Thanks
    Emm

    Hi David,
    for master data conversion you can use LSMW and the RE-FX BAPIs. (please refer to SAP note  [782947|https://service.sap.com/sap/support/notes/782947] ).
    Regards, Franz

  • Backup with Data Protector is not working

    Hello,
    [US]We have an Oracle DB which is saved by HP Data Protector
    [FR]Nous avons une BDD Oracle qui est sauvegardée via HP DataProtector.
    [US]During our last backup, the Data Protector Server has crashed which has stopped the backup during the process.
    [FR]Lors de la dernière sauvegarde, le serveur de backup a planté, arrêtant de ce fait la sauvegarde en cours de la BDD Oracle.
    [US]Now, when we are trying to relaunch the backup, it doesn't work at all.
    The Data Protector agent is starting, it sends the RMAN command to the DB and then stop.
    [FR]Maintenant, lorsque nous voulons relancer la sauvegarde, elle ne fonctionne plus.
    L'agent démarre bien, il envoie bien la commande à RMAN qui démarre puis s'arrête.
    [US] Of we launch the backup manually thru RMAN, it works
    [FR]Lorsqu'on lance cette même sauvegarde manuellement via RMAN, elle fonctionne !
    [US]Lors are not really explicit !
    [FR]Les logs ne sont pas très parlant:
    LOGS of DATA PROTECTOR (in french but I've translated (in bold) which I think, is important)
    Citation:
    [Normal] De : [email protected] "Base10G_DBName_1_Archivelogs_rman_delete" Heure : 26/02/2013 12:10:31
    La session de sauvegarde 2013/02/26-31 a démarré.
    [Normal] De : [email protected] "Base10G_DBName_1_Archivelogs_rman_delete" Heure : 26/02/2013 12:10:33
    Lancement de l'application OB2BAR sur "clientxxx.domain.com" réalisé avec succès.
    [Normal] De : [email protected] "DBNameq" Heure : 26/02/2013 12:10:34
    D?marrage de la sauvegarde de la base de donn?es cible.
    Nom du service r?seau : DBNameq.
    Etat de l'instance : OPEN.
    Nom d'instance : DBNameq.
    DBID de la base de donn?es = 3864252955.
    Type de fichier de contr?le de BDD : CURRENT.
    Mode journalisation BDD : ARCHIVELOG.
    Logging mode: ARCHIVELOG.
    [Normal] De : [email protected] "DBNameq" Heure : 26/02/2013 12:10:35
    D?marrage de Oracle Recovery Manager.
    Recovery Manager: Release 10.2.0.4.0 - Production on Mar. F?vr. 26 12:10:35 2013
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    RMAN> CONNECT TARGET *
    2> CONNECT CATALOG *
    3> HOST 'exit';
    4> run {
    5> allocate channel 'dev_0' type 'sbt_tape'
    6> parms 'SBT_LIBRARY=C:/PROGRA~1/OmniBack/bin/orasbt.dll,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=DBNameq,OB2BARLIST=Base10G_DBName_1_Archivelogs_rman_delete)'
    7> ;
    8> allocate channel 'dev_1' type 'sbt_tape'
    9> parms 'SBT_LIBRARY=C:/PROGRA~1/OmniBack/bin/orasbt.dll,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=DBNameq,OB2BARLIST=Base10G_DBName_1_Archivelogs_rman_delete)'
    10> ;
    11> allocate channel 'dev_2' type 'sbt_tape'
    12> parms 'SBT_LIBRARY=C:/PROGRA~1/OmniBack/bin/orasbt.dll,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=DBNameq,OB2BARLIST=Base10G_DBName_1_Archivelogs_rman_delete)'
    13> ;
    14> allocate channel 'dev_3' type 'sbt_tape'
    15> parms 'SBT_LIBRARY=C:/PROGRA~1/OmniBack/bin/orasbt.dll,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=DBNameq,OB2BARLIST=Base10G_DBName_1_Archivelogs_rman_delete)'
    16> ;
    17> allocate channel 'dev_4' type 'sbt_tape'
    18> parms 'SBT_LIBRARY=C:/PROGRA~1/OmniBack/bin/orasbt.dll,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=DBNameq,OB2BARLIST=Base10G_DBName_1_Archivelogs_rman_delete)'
    19> ;
    20> allocate channel 'dev_5' type 'sbt_tape'
    21> parms 'SBT_LIBRARY=C:/PROGRA~1/OmniBack/bin/orasbt.dll,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=DBNameq,OB2BARLIST=Base10G_DBName_1_Archivelogs_rman_delete)'
    22> ;
    23>
    24> send device type 'sbt_tape' 'OB2BARHOSTNAME=clientxxx.domain.com';
    25> sql 'alter system archive log current';
    26> backup
    27> format 'Base10G_DBName_1_Archivelogs_rman_delete<DBNameq_%s:%t:%p>.dbf'
    28> archivelog all
    29> delete input;
    30> backup
    31> format 'Base10G_DBName_1_Archivelogs_rman_delete<DBNameq_%s:%t:%p>.dbf'
    32> current controlfile;
    33> }
    34> EXIT
    RMAN-06005: connect? ? la base de donn?es cible : DBNameQ (DBID=3864252955)
    RMAN-06005: connected to targeted database : DBNameQ (DBID=3864252955)
    RMAN-06008: connect? ? la base de donn?es du catalogue de r?cup?ration
    RMAN-06008: connected to recovery database
    RMAN-08030: canal affect? : dev_0
    RMAN-08030: allocated chanel : dev_0
    RMAN-08500: canal dev_0 : sid=422 typedev=SBT_TAPE
    RMAN-08500: dev_0 channel : sid=422 typedev=SBT_TAPE
    RMAN-08526: canal dev_0 : Data Protector A.06.20/DPWIN_00536(b621)
    RMAN-08526: dev_0 channel : Data Protector A.06.20/DPWIN_00536(b621)
    RMAN-08030: canal affect? : dev_1
    RMAN-08500: canal dev_1 : sid=888 typedev=SBT_TAPE
    RMAN-08526: canal dev_1 : Data Protector A.06.20/DPWIN_00536(b621)
    RMAN-08500: canal dev_2 : sid=681 typedev=SBT_TAPE
    RMAN-08526: canal dev_2 : Data Protector A.06.20/DPWIN_00536(b621)
    RMAN-08030: canal affect? : dev_3
    RMAN-08500: canal dev_3 : sid=717 typedev=SBT_TAPE
    RMAN-08526: canal dev_3 : Data Protector A.06.20/DPWIN_00536(b621)
    RMAN-08030: canal affect? : dev_4
    RMAN-08500: canal dev_4 : sid=223 typedev=SBT_TAPE
    RMAN-08526: canal dev_4 : Data Protector A.06.20/DPWIN_00536(b621)
    RMAN-08030: canal affect? : dev_5
    RMAN-08500: canal dev_5 : sid=212 typedev=SBT_TAPE
    RMAN-08526: canal dev_5 : Data Protector A.06.20/DPWIN_00536(b621)
    RMAN-06421: commande envoy?e au canal : dev_0
    RMAN-06421: command send to channel : dev_0
    RMAN-06421: commande envoy?e au canal : dev_1
    RMAN-06421: commande envoy?e au canal : dev_2
    RMAN-06421: commande envoy?e au canal : dev_3
    RMAN-06421: commande envoy?e au canal : dev_4
    RMAN-06421: commande envoy?e au canal : dev_5
    RMAN-06162: instruction SQL : alter system archive log current
    RMAN-06162: SQL query : alter system archive log current
    RMAN-03090: D?marrage de backup dans 26/02/13
    RMAN-03090: BAckup is starting in 26/02/13
    RMAN-08031: canal lib?r? : dev_0
    RMAN-08031: released channel : dev_0
    RMAN-08031: canal lib?r? : dev_1
    RMAN-08031: canal lib?r? : dev_2
    RMAN-08031: canal lib?r? : dev_3
    RMAN-08031: canal lib?r? : dev_4
    RMAN-08031: canal lib?r? : dev_5
    [Normal] De : [email protected] "Base10G_DBName_1_Archivelogs_rman_delete" Heure : 26/02/2013 12:10:46
    Application OB2BAR sur "clientxxx.domain.com" déconnectée.
    Application OB2BAR on"xxx" disconnected.
    [Critique] De : [email protected] "Base10G_DBName_1_Archivelogs_rman_delete" Heure : 26/02/2013 12:10:46
    Aucun Agent de disque ne s'est effectué correctement.
    La session a échoué.
    None of the Disk Agents completed successfully.
    Session has failed.
    [Normal] De : [email protected] "Base10G_DBName_1_Archivelogs_rman_delete" Heure : 26/02/2013 12:10:46
    Statistiques de la sauvegarde :
    Temps de file d'attente de la session (en heures) 0,00
    Agents de disque terminés ........ 0
    Agents de disque ayant échoué ........... 0
    Agents de disque abandonnés .......... 0
    Total des Agents de disque ........... 0
    ========================================
    Agents de support terminés ....... 0
    Agents de support ayant échoué .......... 0
    Abandon des Agents de support ......... 0
    Total des Agents de support .......... 0
    ===========================================
    Total Méga-octets ................. 0 Mo
    Total des supports utilisés ............. 0
    Total d'erreurs d'Agent de disque ...... 0

    Hello,
    No disconnection at all.
    It doesn't work since a crash of the DP server during the DB backup.
    When we move the catalog on the same server as the DB, the backup works but if we set the catalog to an other server (like the original setting) it doesn't work and we don't know why.
    It seems that when a backup is launched thru Data Protector, RMAN can't find the DB catalog. But if we run (manually) the RMAN command that DP used to do a backup, it works...

  • DO i need some extra hardware interface for receving both Audio and video

    hi i m doing e-learning project. i have to capture video from webcam and voice from headphone and send to client.
    but my code is working fine for either one at a time.
    DO i need some extra hardware interface for receving both Audio and video. im using code AVTransmit and AVReceive found from this site only
    After running TX
    i give Dsound:// & vfw://0 in Media Locater only sound is received and no vedio
    and when i give vfw://0 in Media Locater only live video is transmited.
    im using JMF1.1.2e.
    if any one know the method to run or cause of it plz reply me soon. i will be very thankfull
    transmiter/server side code .first run TX on server
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.util.*;
    import javax.media.rtp.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    public class Tx extends JFrame implements ActionListener, KeyListener,
    MouseListener, WindowListener {
    Vector targets;
    JList list;
    JButton startXmit;
    JButton rtcp;
    JButton update;
    JButton expiration;
    JButton statistics;
    JButton addTarget;
    JButton removeTarget;
    JTextField tf_remote_address;
    JTextField tf_remote_data_port;
    JTextField tf_media_file;
    JTextField tf_data_port;
    TargetListModel listModel;
    AVTransmitter avTransmitter;
    RTCPViewer rtcpViewer;
    JCheckBox cb_loop;
    Config config;
    public Tx() {
    setTitle( "JMF/RTP Transmitter");
         config= new Config();
         GridBagLayout gridBagLayout= new GridBagLayout();
         GridBagConstraints gbc;
         JPanel p= new JPanel();
         p.setLayout( gridBagLayout);
         JPanel localPanel= createLocalPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.gridwidth= 2;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( localPanel, gbc);
         p.add( localPanel);
         JPanel targetPanel= createTargetPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 1;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( targetPanel, gbc);
    p.add( targetPanel);
         JPanel mediaPanel= createMediaPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 2;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( mediaPanel, gbc);
    p.add( mediaPanel);
    JPanel buttonPanel= new JPanel();
    rtcp= new JButton( "RTCP Monitor");
    update= new JButton( "Transmission Status");
         update.setEnabled( false);
         rtcp.addActionListener( this);
         update.addActionListener( this);
         buttonPanel.add( rtcp);
         buttonPanel.add( update);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 3;
    gbc.gridwidth= 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( buttonPanel, gbc);
         p.add( buttonPanel);
    getContentPane().add( p);
         list.addMouseListener( this);
         addWindowListener( this);
    pack();
    setVisible( true);
    private JPanel createMediaPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "Media Locator:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_media_file= new JTextField( 35);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_media_file, gbc);
         p.add( tf_media_file);
         tf_media_file.setText( config.media_locator);
         cb_loop= new JCheckBox( "loop");
         startXmit= new JButton( "Start Transmission");
         startXmit.setEnabled( true);
         startXmit.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 2;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( cb_loop, gbc);
         p.add( cb_loop);
         cb_loop.setSelected( true);
         cb_loop.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( startXmit, gbc);
         p.add( startXmit);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Source");
         p.setBorder( titledBorder);
         return p;
    private JPanel createTargetPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         targets= new Vector();
         for( int i= 0; i < config.targets.size(); i++) {
         targets.addElement( config.targets.elementAt( i));
    listModel= new TargetListModel( targets);
    list= new JList( listModel);
         list.addKeyListener( this);
         list.setPrototypeCellValue( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    JScrollPane scrollPane= new JScrollPane( list,
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( scrollPane, gbc);
         p.add( scrollPane);
    JPanel p1= new JPanel();
         p1.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_address= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_address, gbc);
         p1.add( tf_remote_address);
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_data_port, gbc);
         p1.add( tf_remote_data_port);     
    JPanel p2= new JPanel();
    addTarget= new JButton( "Add Target");     
    removeTarget= new JButton( "Remove Target");
         p2.add( addTarget);
         p2.add( removeTarget);
         addTarget.addActionListener( this);
         removeTarget.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.gridwidth= 2;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 20,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( p2, gbc);
         p1.add( p2);
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( p1, gbc);
         p.add( p1);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Targets");
         p.setBorder( titledBorder);
         return p;
    private JPanel createLocalPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         JTextField tf_local_host= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_local_host, gbc);
         p.add( tf_local_host);
         try {
    String host= InetAddress.getLocalHost().getHostAddress();     
         tf_local_host.setText( host);
         } catch( UnknownHostException e) {
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_data_port, gbc);
         p.add( tf_data_port);
         tf_data_port.setText( config.local_data_port);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Local Host");
         p.setBorder( titledBorder);
         return p;
    public void actionPerformed( ActionEvent event) {
    Object source= event.getSource();
         if( source == addTarget) {
         String ip= tf_remote_address.getText().trim();
         String port= tf_remote_data_port.getText().trim();
         String localPort= tf_data_port.getText().trim();
         addTargetToList( localPort, ip, port);
         if( avTransmitter != null) {
         avTransmitter.addTarget( ip, port);
         } else if( source == removeTarget) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              if( avTransmitter != null) {
         avTransmitter.removeTarget( target.ip, target.port);
              targets.removeElement( target);
              listModel.setData( targets);          
         } else if( source == startXmit) {
         if( startXmit.getLabel().equals( "Start Transmission")) {          
         int data_port= new Integer( tf_data_port.getText()).intValue();
              avTransmitter= new AVTransmitter( this, data_port);
         avTransmitter.start( tf_media_file.getText().trim(), targets);          
              avTransmitter.setLooping( cb_loop.isSelected());
         startXmit.setLabel( "Stop Transmission");
         } else if( startXmit.getLabel().equals( "Stop Transmission")) {
              avTransmitter.stop();
              avTransmitter= null;
              removeNonBaseTargets();
              listModel.setData( targets);
         startXmit.setLabel( "Start Transmission");          
         } else if( source == rtcp) {
         if( rtcpViewer == null) {
         rtcpViewer= new RTCPViewer();
         } else {
              rtcpViewer.setVisible( true);
              rtcpViewer.toFront();
         } else if( source == cb_loop) {
         if( avTransmitter != null) {
              avTransmitter.setLooping( cb_loop.isSelected());
    private void removeNonBaseTargets() {
         String localPort= tf_data_port.getText().trim();
         for( int i= targets.size(); i > 0;) {
         Target target= (Target) targets.elementAt( i - 1);
         if( !target.localPort.equals( localPort)) {
    targets.removeElement( target);
         i--;
    public void addTargetToList( String localPort,
                             String ip, String port) {     
    ListUpdater listUpdater= new ListUpdater( localPort, ip,
                                  port, listModel, targets);
    SwingUtilities.invokeLater( listUpdater);           
    public void rtcpReport( String report) {
         if( rtcpViewer != null) {
         rtcpViewer.report( report);
    public void windowClosing( WindowEvent event) {
         config.local_data_port= tf_data_port.getText().trim();
         config.targets= new Vector();
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( config.local_data_port)) {
              config.addTarget( target.ip, target.port);
         config.media_locator= tf_media_file.getText().trim();
         config.write();
    System.exit( 0);
    public void windowClosed( WindowEvent event) {
    public void windowDeiconified( WindowEvent event) {
    public void windowIconified( WindowEvent event) {
    public void windowActivated( WindowEvent event) {
    public void windowDeactivated( WindowEvent event) {
    public void windowOpened( WindowEvent event) {
    public void keyPressed( KeyEvent event) {
    public void keyReleased( KeyEvent event) {
    Object source= event.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
    public void keyTyped( KeyEvent event) {
    public void mousePressed( MouseEvent e) {
    public void mouseReleased( MouseEvent e) {
    public void mouseEntered( MouseEvent e) {
    public void mouseExited( MouseEvent e) {
    public void mouseClicked( MouseEvent e) {
    Object source= e.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              tf_remote_address.setText( target.ip);
              tf_remote_data_port.setText( target.port);
         int index= list.locationToIndex( e.getPoint());
    public static void main( String[] args) {
    new Tx();
    class TargetListModel extends AbstractListModel {
    private Vector options;
    public TargetListModel( Vector options) {
         this.options= options;
    public int getSize() {
         int size;
         if( options == null) {
         size= 0;
         } else {
         size= options.size();
         return size;
    public Object getElementAt( int index) {
    String name;
    if( index < getSize()) {
         Target o= (Target)options.elementAt( index);
    name= o.localPort + " ---> " + o.ip + ":" + o.port;
         } else {
         name= null;
         return name;
    public void setData( Vector data) {
         options= data;
         fireContentsChanged( this, 0, data.size());
    class ListUpdater implements Runnable {
    String localPort, ip, port;
    TargetListModel listModel;
    Vector targets;
    public ListUpdater( String localPort, String ip, String port,
                   TargetListModel listModel, Vector targets) {
         this.localPort= localPort;
         this.ip= ip;
         this.port= port;
         this.listModel= listModel;
         this.targets= targets;
    public void run() {
    Target target= new Target( localPort, ip, port);
         if( !targetExists( localPort, ip, port)) {
         targets.addElement( target);
    listModel.setData( targets);
    public boolean targetExists( String localPort, String ip, String port) {
         boolean exists= false;
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( localPort)
         && target.ip.equals( ip)
              && target.port.equals( port)) {          
              exists= true;
         break;
         return exists;
    >>>>>>>>>>>>>>>>>
    import java.awt.*;
    import java.io.*;
    import java.net.InetAddress;
    import java.util.*;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import javax.media.control.TrackControl;
    import javax.media.control.QualityControl;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.rtp.rtcp.*;
    public class AVTransmitter implements ReceiveStreamListener, RemoteListener,
    ControllerListener {
    // Input MediaLocator
    // Can be a file or http or capture source
    private MediaLocator locator;
    private String ipAddress;
    private int portBase;
    private Processor processor = null;
    private RTPManager rtpMgrs[];
    private int localPorts[];
    private DataSource dataOutput = null;
    private int local_data_port;
    private Tx tx;
    public AVTransmitter( Tx tx, int data_port) {
         this.tx= tx;
         local_data_port= data_port;
    * Starts the transmission. Returns null if transmission started ok.
    * Otherwise it returns a string with the reason why the setup failed.
    public synchronized String start( String filename, Vector targets) {
         String result;
         locator= new MediaLocator( filename);
         // Create a processor for the specified media locator
         // and program it to output JPEG/RTP
         result = createProcessor();
         if (result != null) {
         return result;
         // Create an RTP session to transmit the output of the
         // processor to the specified IP address and port no.
         result = createTransmitter( targets);
         if (result != null) {
         processor.close();
         processor = null;
         return result;
         // Start the transmission
         processor.start();
         return null;
    * Use the RTPManager API to create sessions for each media
    * track of the processor.
    private String createTransmitter( Vector targets) {
         // Cheated. Should have checked the type.
         PushBufferDataSource pbds = (PushBufferDataSource)dataOutput;
         PushBufferStream pbss[] = pbds.getStreams();
         rtpMgrs = new RTPManager[pbss.length];
         localPorts = new int[ pbss.length];
         SessionAddress localAddr, destAddr;
         InetAddress ipAddr;
         SendStream sendStream;
         int port;
         SourceDescription srcDesList[];
         for (int i = 0; i < pbss.length; i++) {
         // for (int i = 0; i < 1; i++) {
         try {
              rtpMgrs[i] = RTPManager.newInstance();     
              port = local_data_port + 2*i;
              localPorts[ i]= port;
              localAddr = new SessionAddress( InetAddress.getLocalHost(),
                                  port);
              rtpMgrs.initialize( localAddr);          
              rtpMgrs[i].addReceiveStreamListener(this);
              rtpMgrs[i].addRemoteListener(this);
         for( int k= 0; k < targets.size(); k++) {
              Target target= (Target) targets.elementAt( k);
              int targetPort= new Integer( target.port).intValue();
              addTarget( localPorts[ i], rtpMgrs[ i], target.ip, targetPort + 2*i);
              sendStream = rtpMgrs[i].createSendStream(dataOutput, i);          
              sendStream.start();
         } catch (Exception e) {
              e.printStackTrace();
              return e.getMessage();
         return null;
    public void addTarget( String ip, String port) {
         for (int i= 0; i < rtpMgrs.length; i++) {
         int targetPort= new Integer( port).intValue();
         addTarget( localPorts[ i], rtpMgrs[ i], ip, targetPort + 2*i);
    public void addTarget( int localPort, RTPManager mgr, String ip, int port) {
         try {
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         mgr.addTarget( addr);
         tx.addTargetToList( localPort + "", ip, port + "");
         } catch( Exception e) {
         e.printStackTrace();
    public void removeTarget( String ip, String port) {
         try {     
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTarget( addr, "target removed from transmitter.");
         } catch( Exception e) {
         e.printStackTrace();
    boolean looping= true;
    public void controllerUpdate( ControllerEvent ce) {
         System.out.println( ce);
         if( ce instanceof DurationUpdateEvent) {
         Time duration= ((DurationUpdateEvent) ce).getDuration();
         System.out.println( "duration: " + duration.getSeconds());
         } else if( ce instanceof EndOfMediaEvent) {
         System.out.println( "END OF MEDIA - looping=" + looping);
         if( looping) {
         processor.setMediaTime( new Time( 0));
              processor.start();
    public void setLooping( boolean flag) {
         looping= flag;
    public void update( ReceiveStreamEvent event) {
         String timestamp= getTimestamp();
         StringBuffer sb= new StringBuffer();
         if( event instanceof InactiveReceiveStreamEvent) {
         sb.append( timestamp + " Inactive Receive Stream");
         } else if( event instanceof ByeEvent) {
         sb.append( timestamp + " Bye");
         } else {
         System.out.println( "ReceiveStreamEvent: "+ event);
         tx.rtcpReport( sb.toString());     
    public void update( RemoteEvent event) {     
         String timestamp= getTimestamp();
         if( event instanceof ReceiverReportEvent) {
         ReceiverReport rr= ((ReceiverReportEvent) event).getReport();
         StringBuffer sb= new StringBuffer();
         sb.append( timestamp + " RR");
         if( rr != null) {
              Participant participant= rr.getParticipant();
              if( participant != null) {
              sb.append( " from " + participant.getCNAME());
              sb.append( " ssrc=" + rr.getSSRC());
              } else {
              sb.append( " ssrc=" + rr.getSSRC());
              tx.rtcpReport( sb.toString());
         } else {
         System.out.println( "RemoteEvent: " + event);
    private String getTimestamp() {
         String timestamp;
         Calendar calendar= Calendar.getInstance();
         int hour= calendar.get( Calendar.HOUR_OF_DAY);
         String hourStr= formatTime( hour);
         int minute= calendar.get( Calendar.MINUTE);
         String minuteStr= formatTime( minute);
         int second= calendar.get( Calendar.SECOND);
         String secondStr= formatTime( second);
         timestamp= hourStr + ":" + minuteStr + ":" + secondStr;     
         return timestamp;
    private String formatTime( int time) {     
         String timeStr;
         if( time < 10) {
         timeStr= "0" + time;
         } else {
         timeStr= "" + time;
         return timeStr;
    * Stops the transmission if already started
    public void stop() {
         synchronized (this) {
         if (processor != null) {
              processor.stop();
              processor.close();
              processor = null;
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTargets( "Session ended.");
              rtpMgrs[ i].dispose();
    public String createProcessor() {
         if (locator == null) {
         return "Locator is null";
         DataSource ds;
         DataSource clone;
         try {
         ds = javax.media.Manager.createDataSource(locator);
         } catch (Exception e) {
         return "Couldn't create DataSource";
         // Try to create a processor to handle the input media locator
         try {
         processor = javax.media.Manager.createProcessor(ds);
         processor.addControllerListener( this);     
         } catch (NoProcessorException npe) {
         return "Couldn't create processor";
         } catch (IOException ioe) {
         return "IOException creating processor";
         // Wait for it to configure
         boolean result = waitForState(processor, Processor.Configured);
         if (result == false)
         return "Couldn't configure processor";
         // Get the tracks from the processor
         TrackControl [] tracks = processor.getTrackControls();
         // Do we have atleast one track?
         if (tracks == null || tracks.length < 1)
         return "Couldn't find tracks in processor";
         // Set the output content descriptor to RAW_RTP
         // This will limit the supported formats reported from
         // Track.getSupportedFormats to only valid RTP formats.
         ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);
         processor.setContentDescriptor(cd);
         Format supported[];
         Format chosen;
         boolean atLeastOneTrack = false;
         // Program the tracks.
         for (int i = 0; i < tracks.length; i++) {
         Format format = tracks[i].getFormat();
         if (tracks[i].isEnabled()) {
              supported = tracks[i].getSupportedFormats();
              // We've set the output content to the RAW_RTP.
              // So all the supported formats should work with RTP.
              // We'll just pick the first one.
              if (supported.length > 0) {
              if (supported[0] instanceof VideoFormat) {
                   // For video formats, we should double check the
                   // sizes since not all formats work in all sizes.
                   chosen = checkForVideoSizes(tracks[i].getFormat(),
                                       supported[0]);
              } else
                   chosen = supported[0];
              tracks[i].setFormat(chosen);
              System.err.println("Track " + i + " is set to transmit as:");
              System.err.println(" " + chosen);
              atLeastOneTrack = true;
              } else
              tracks[i].setEnabled(false);
         } else
              tracks[i].setEnabled(false);
         if (!atLeastOneTrack)
         return "Couldn't set any of the tracks to a valid RTP format";
         // Realize the processor. This will internally create a flow
         // graph and attempt to create an output datasource for JPEG/RTP
         // audio frames.
         result = waitForState(processor, Controller.Realized);
         if (result == false)
         return "Couldn't realize processor";
         // Set the JPEG quality to .5.
         setJPEGQuality(processor, 0.5f);
         // Get the output data source of the processor
         dataOutput = processor.getDataOutput();
         return null;
    static SessionAddress destAddr1, destAddr2;
    * For JPEG and H263, we know that they only work for particular
    * sizes. So we'll perform extra checking here to make sure they
    * are of the right sizes.
    Format checkForVideoSizes(Format original, Format supported) {
         int width, height;
         Dimension size = ((VideoFormat)original).getSize();
         Format jpegFmt = new Format(VideoFormat.JPEG_RTP);
         Format h263Fmt = new Format(VideoFormat.H263_RTP);
         if (supported.matches(jpegFmt)) {
         // For JPEG, make sure width and height are divisible by 8.
         width = (size.width % 8 == 0 ? size.width :
                        (int)(size.width / 8) * 8);
         height = (size.height % 8 == 0 ? size.height :
                        (int)(size.height / 8) * 8);
         } else if (supported.matches(h263Fmt)) {
         // For H.263, we only support some specific sizes.
         if (size.width < 128) {
              width = 128;
              height = 96;
         } else if (size.width < 176) {
              width = 176;
              height = 144;
         } else {
              width = 352;
              height = 288;
         } else {
         // We don't know this particular format. We'll just
         // leave it alone then.
         return supported;
         return (new VideoFormat(null,
                        new Dimension(width, height),
                        Format.NOT_SPECIFIED,
                        null,
                        Format.NOT_SPECIFIED)).intersects(supported);
    * Setting the encoding quality to the specified value on the JPEG encoder.
    * 0.5 is a good default.
    void setJPEGQuality(Player p, float val) {
         Control cs[] = p.getControls();
         QualityControl qc = null;
         VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
         // Loop through the controls to find the Quality control for
         // the JPEG encoder.
         for (int i = 0; i < cs.length; i++) {
         if (cs[i] instanceof QualityControl &&
              cs[i] instanceof Owned) {
              Object owner = ((Owned)cs[i]).getOwner();
              // Check to see if the owner is a Codec.
              // Then check for the output format.
              if (owner instanceof Codec) {
              Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
              for (int j = 0; j < fmts.length; j++) {
                   if (fmts[j].matches(jpegFmt)) {
                   qc = (QualityControl)cs[i];
                   qc.setQuality(val);
                   System.err.println("- Setting quality to " +
                             val + " on " + qc);
                   break;
              if (qc != null)
              break;
    * Convenience methods to handle processor's state changes.
    private Integer stateLock = new Integer(0);
    private boolean failed = false;
    Integer getStateLock() {
         return stateLock;
    void setFailed() {
         failed = true;
    private synchronized boolean waitForState(Processor p, int state) {
         p.addControllerListener(new StateListener());
         failed = false;
         // Call the required method on the processor
         if (state == Processor.Configured) {
         p.configure();
         } else if (state == Processor.Realized) {
         p.realize();
         // Wait until we get an event that confirms the
         // success of the method, or a failure event.
         // See StateListener inner class
         while (p.getState() < state && !failed) {
         synchronized (getStateLock()) {
              try {
              getStateLock().wait();
              } catch (InterruptedException ie) {
              return false;
         if (failed)
         return false;
         else
         return true;
    * Inner Classes
    class StateListener implements ControllerListener {
         public void controllerUpdate(ControllerEvent ce) {
         // If there was an error during configure or
         // realiz

    I do this all the time, I put my MBP to a 60 inch Sharp. If you have the video working do the simple thing first. Check to make sure your sound is on your TV and Mac. Then if that doesn't work go to System Prefrences and under sound go to a tab called Output and see if your TV is listed and if it is change it to that setting
    Hope It Works

Maybe you are looking for

  • Excise Invoice from Multiple GRPO

    Hi, How can we create a singe incoming excise invoice from multiple GRPOs? While creating one, when we use the copy from button, it allows to select only one GRPO and not multiple unlike A/P Invoice which can be created from multiple GRPOs. Thanks, A

  • Error during build

    Hello I am new in premier pro cs4 sdk. I give the following error when build the  SDK_Custom_Importpipl &  SDK_Custom_Import.cpp Error    3    error LNK1104: cannot open file 'C:\Program Files\Adobe\Adobe Premiere Pro CS4\Plug-ins\Common\\CustomImpor

  • Tasks email notification...

    When I create a task,the tracker and the person to whom the task is assigned should receive an email notification. But the email is not generated. Could someone please tell me what the problem could be? Thanks in advance, Sudha.

  • ALV Report out put not down loading in XLS sheet

    Hi Guis, I am trying to down load ALV report output in XLS sheet . I am selecting  LIST ->SPREADSHEET->TABLE I am getting the fallowing message . Even though I have 18 columns . An XXL list object is exported with 8 lines and 1 columns. But no data h

  • Program Transfer

    Hello,  can anyone tell me how to transfer my Photoshop program to my new computer if my new computer doesn't have a CD rom drive and all I have are the original Photoshop setup CDs?