Type creation needing an extra slash in Sqlplus

DB Version:10gR2
A table can be created with the termination charachter semicolon plus enter. But when creating TYPEs we need an extra forward slash.
Why is that?
SQL> create table xyz(col1 number(4));
Table created.
SQL> CREATE OR REPLACE TYPE UID_TYPES  AS TABLE OF UIDLIST;
  2  /                             ------------------------------> the slash i am talking about
Type created.

GarryB wrote:
A table can be created with the termination charachter semicolon plus enter. But when creating TYPEs we need an extra forward slash.
Why is that?The semicolon for a "+CREATE TYPE+" indicates the end of the type definition. Other SQL commands does not need that - as other commands do not mix PL code with SQL DDL commands.
Note that a type is defined as a SQL type, but can have PL methods, constructors and so on. This makes the "+CREATE TYPE+" SQL DDL command different from other DDLs - as it includes PL code syntax. For that reason the parser needs to know exactly where the type definition terminates. Thus the semi-colon.
Now for the confusing part. SQL*Plus needs to know when you have finished typing so that it can transmit the block of text that you typed to the Oracle server to be parsed and executed.
SQL*Plus uses 2 characters to allow you to tell it "+send this typed text to Oracle+" - it uses the semi-colon and the forward slash.
Thus the confusion - as SQL*Plus (client) now uses the very same delimiter that Oracle (server) uses. So SQL*Plus have some built-in parsing intelligence. It monitors what you type. If you type a plain vanilla SQL statement like this...
SQL> select empid from emp *;*
.. it realises that the *;* is the instruction for it to send the text "+select empid from emp+" to the server.
If you type a PL type instruction, SQL*Plus realises that you will be using semi-colons as command delimiters - and it will not send the text thus far typed to Oracle. Instead it will wait for you to tell it to send the text when you use the forward slash.
When you do a type definition, SQL*Plus knows that you need to use a semi-colon as end of statement character. So it will wait for you to finish typing and indicate that you're done type using a forward slash. E.g you type:
SQL> create or replace type TStrings as table of varchar2(4000);
+2> */*+
And SQL*Plus sends the text "+create or replace type TStrings as table of varchar2(4000);+" to Oracle for execution.
So be careful not to confuse SQL*Plus "transmit text" characters with SQL and PL/SQL command delimiters.. or the SQL*Plus primitive macro language with the formal procedural language of PL/SQL.

Similar Messages

  • Append Extra Slash for Application Request through OHS

    Hello All,
    I am writing to request your help on the following blocking issue :
    In my attempt to configure End-End SSL between Browser->OHS Plugin->SSL Weblogic Managed Server ,
    Weblogic is giving me an incorrect response while constructing the absolute redirect.
    What i mean is :
    I am trying to excess an application deployed on an SSL Weblogic as :
    https://adc2110491.us.oracle.com:12004/Calendar
    But when i configure this through OHS, and then try to access the same application via URL :
    https://adc2110491.us.oracle.com:4443/test/Calendar - This doesnt work !
    Instead if i append an extra "Slash" in the URL, the application is accessible(This is a workaround and not an expected behavior) :
    https://adc2110491.us.oracle.com:4443/test/Calendar/ - This works !
    For such kind of configuration from OHS side, I enabled a property called "*WebLogic Plug-In Enabled*" from "WLS Managed Server -> General settings"
    Please note that, in case When above mentioned Weblogic-Server is NOT SSL, this works fine.
    This error is only in SSL case.
    Also, Pasting the log file below for one such failed request :
    +Tue Apr  9 11:47:12 2013 <1009513655332321> ================New Request: [GET /test/Calendar HTTP/1.1] =================+
    Tue Apr  9 11:47:12 2013 <1009513655332321> INFO: SSL is configured
    Tue Apr  9 11:47:12 2013 <1009513655332321> Using Uri /test/Calendar
    Tue Apr  9 11:47:12 2013 <1009513655332321> After trimming path: '/Calendar'
    Tue Apr  9 11:47:12 2013 <1009513655332321> The final request string is '/Calendar'
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseServerList: Socket Address hostnames  'adc2110491.us.oracle.com:12004'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Host extracted from serverlist is [adc2110491.us.oracle.com]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseServerList:  IP from socket Address [10.232.130.87]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Initializing lastIndex=0 for a list of length=1
    Tue Apr  9 11:47:12 2013 <1009513655332321> getListNode: created a new server node: id='adc2110491.us.oracle.com:12004' server_name='adc2110491.us.oracle.com', port='4443'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferred: availcookie=[s_nr=1365505876368; ADMINCONSOLESESSION=FGY9RkfPy7xrvwn4zYR0LqfTV0vGkBjPxhjxQbQGlkhjXJ22LHXJ!1111363896; _WL_AUTHCOOKIE_ADMINCONSOLESESSION=mSkOg.X9HBLf9jgkR.PJ; JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Found cookie from cookie header: JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397
    Tue Apr  9 11:47:12 2013 <1009513655332321> Parsing cookie JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397
    +Tue Apr  9 11:47:12 2013 <1009513655332321> getpreferredServersFromCookie: [-1304266397]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> primaryJVMID: [-1304266397], secondaryJVMID: []+
    Tue Apr  9 11:47:12 2013 <1009513655332321> No of JVMIDs found in cookie: 1
    Tue Apr  9 11:47:12 2013 <1009513655332321> Number of nodes in the list: 1
    Tue Apr  9 11:47:12 2013 <1009513655332321> SrvrInfo 0 with JVMID:
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferredFromCookie: Start Position is 0, listLen is 1
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferredFromCookie: Either JVMIDs not set or they are stale. Will try to get JVMIDs from WLS
    Tue Apr  9 11:47:12 2013 <1009513655332321> initJVMID: Iterating SrvrList from position 0
    Tue Apr  9 11:47:12 2013 <1009513655332321> ======internal request /bea_wls_internal/WLDummyInitJVMIDs======
    initJVMID: Trying Host[10.232.130.87] Port[12004] SecurePort[12004] useSSL [1] ioTimeout [30] socketTimeout [2]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Local Port of the socket is 22159
    Tue Apr  9 11:47:12 2013 <1009513655332321> Remote Host 10.232.130.87 Remote Port 12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::sendHeaders(): meth='HEAD' file='/bea_wls_internal/WLDummyInitJVMIDs' protocol='HTTP/1.0'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Connection]=[Close]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-Request-ClusterInfo]=[true]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-Force-JVMID]=[unset]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-KeepAliveSecs]=[30]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Need to send 167
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite sent 167, Error = 0
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite completed, sent 167
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: Value of parsedHeaders = [0]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    +Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: CompleteStatusLine set to [HTTP/1.1 404 Not Found]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: StatusLine set to [404 Not Found]
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Connection]=[close]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Date]=[Tue, 09 Apr 2013 18:47:12 GMT]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Content-Length]=[1214]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Content-Type]=[text/html; charset=UTF-8]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-WebLogic-Cluster-Hash]=[yo3Df7lxCy0/YU7vJMjHoUNLu9I]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-Powered-By]=[Servlet/2.5 JSP/2.1]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-WebLogic-Cluster-List]=[-1304266397!183009879!12003!12004]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parsed all headers OK
    Tue Apr  9 11:47:12 2013 <1009513655332321> Parsing cluster list: -1304266397!183009879!12003!12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseJVMID: Parsing JVMID '-1304266397!183009879!12003!12004'
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseJVMID: Actually parsing '-1304266397!183009879!12003!12004'
    Tue Apr  9 11:47:12 2013 <1009513655332321> ServerInfo struct for JVMID '-1304266397' populated, Server Details are: OrigHostInfo [10.232.130.87], isOrigHostInfoDNS [0], Host [10.232.130.87], Port [12003], SecurePort [12004]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Initializing lastIndex=0 for a list of length=1
    +Tue Apr  9 11:47:12 2013 <1009513655332321> initJVMID: Trying to locate Primary or Secondary using SrvrInfo with JVMID [-1304266397]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> initJVMID: Found Primary 10.232.130.87:12003:12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> .....internal request /bea_wls_internal/WLDummyInitJVMIDs.....processed
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferredFromCookie: Found 1 servers
    Tue Apr  9 11:47:12 2013 <1009513655332321> attempt #0 out of a max of 5
    Tue Apr  9 11:47:12 2013 <1009513655332321> trying connect to PRIMARY '10.232.130.87'/12003/12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPooledConn: found a host and port/securePort match
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPooledConn: No more connections in the pool for Host[10.232.130.87] Port[12003] SecurePort[12004]
    Tue Apr  9 11:47:12 2013 <1009513655332321> getConnection: Obtained a URL object from factory
    Tue Apr  9 11:47:12 2013 <1009513655332321> getConnection: Setting SSL properties on URL object
    Tue Apr  9 11:47:12 2013 <1009513655332321> Local Port of the socket is 22160
    Tue Apr  9 11:47:12 2013 <1009513655332321> Remote Host 10.232.130.87 Remote Port 12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> created a new connection to preferred server '10.232.130.87/12004' for '/Calendar', Local port:0
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Host]=[adc2110491.us.oracle.com:4443]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[User-Agent]=[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.4) Gecko/20100101 Firefox/10.0.4]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Accept]=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Accept-Language]=[en-us,en;q=0.5]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Accept-Encoding]=[gzip, deflate]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Connection]=[keep-alive]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Cookie]=[s_nr=1365505876368; ADMINCONSOLESESSION=FGY9RkfPy7xrvwn4zYR0LqfTV0vGkBjPxhjxQbQGlkhjXJ22LHXJ!1111363896; _WL_AUTHCOOKIE_ADMINCONSOLESESSION=mSkOg.X9HBLf9jgkR.PJ; JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[ECID-Context]=[1.004qV7vEojhDsXY5HrG7yf0006Jj0000SH;kXjE1ZDLIPHHj4TPnKVB3HOR_UOPXIS]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parse_header is done
    Tue Apr  9 11:47:12 2013 <1009513655332321> Method is GET
    Tue Apr  9 11:47:12 2013 <1009513655332321> About to call parseHeaders
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: Value of parsedHeaders = [0]
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::sendHeaders(): meth='GET' file='/Calendar' protocol='HTTP/1.1'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Host]=[adc2110491.us.oracle.com:4443]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [User-Agent]=[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.4) Gecko/20100101 Firefox/10.0.4]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Accept]=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Accept-Language]=[en-us,en;q=0.5]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Accept-Encoding]=[gzip, deflate]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Cookie]=[s_nr=1365505876368; ADMINCONSOLESESSION=FGY9RkfPy7xrvwn4zYR0LqfTV0vGkBjPxhjxQbQGlkhjXJ22LHXJ!1111363896; _WL_AUTHCOOKIE_ADMINCONSOLESESSION=mSkOg.X9HBLf9jgkR.PJ; JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [ECID-Context]=[1.004qV7vEojhDsXY5HrG7yf0006Jj0000SH;kXjE1ZDLIPHHj4TPnKVB3HOR_UOPXIS]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Connection]=[Keep-Alive]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [WL-Proxy-SSL]=[true]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [WL-PATH-TRIM]=[test]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [WL-Proxy-Client-IP]=[148.87.19.36]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Proxy-Client-IP]=[148.87.19.36]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-Forwarded-For]=[148.87.19.36]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-KeepAliveSecs]=[30]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-Request-ClusterInfo]=[true]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [x-weblogic-cluster-hash]=[yo3Df7lxCy0/YU7vJMjHoUNLu9I]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Need to send 889
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite sent 889, Error = 0
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite completed, sent 889
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    +Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: CompleteStatusLine set to [HTTP/1.1 302 Moved Temporarily]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: StatusLine set to [302 Moved Temporarily]
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Date]=[Tue, 09 Apr 2013 18:47:12 GMT]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Transfer-Encoding]=[chunked]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Location]=[http://adc2110491.us.oracle.com:4443/test/Calendar/]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-Powered-By]=[Servlet/2.5 JSP/2.1]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parsed all headers OK
    Tue Apr  9 11:47:12 2013 <1009513655332321> done with sendRequest
    Tue Apr  9 11:47:12 2013 <1009513655332321> sendResponse() : r->status = '302'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to client (add):[Date]=[Tue, 09 Apr 2013 18:47:12 GMT]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to client (add):[Location]=[http://adc2110491.us.oracle.com:4443/test/Calendar/]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to client (add):[X-Powered-By]=[Servlet/2.5 JSP/2.1]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 3 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=3 toRead=4093
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=5 toRead=4091
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 1 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 297 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 3 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=3 toRead=4093
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=5 toRead=4091
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 1 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> calling closeConn() with non-null URL* at 3882
    Tue Apr  9 11:47:12 2013 <1009513655332321> canRecycle: conn=1 status=302 isKA=1 clen=-1 isCTE=1
    Tue Apr  9 11:47:12 2013 <1009513655332321> closeConn: pooling for '10.232.130.87/12004'
    Tue Apr  9 11:47:12 2013 <1009513655332321> closeConn: pooling '0'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> request [Calendar] processed successfully..................+

    Hello All,
    I am writing to request your help on the following blocking issue :
    In my attempt to configure End-End SSL between Browser->OHS Plugin->SSL Weblogic Managed Server ,
    Weblogic is giving me an incorrect response while constructing the absolute redirect.
    What i mean is :
    I am trying to excess an application deployed on an SSL Weblogic as :
    https://adc2110491.us.oracle.com:12004/Calendar
    But when i configure this through OHS, and then try to access the same application via URL :
    https://adc2110491.us.oracle.com:4443/test/Calendar - This doesnt work !
    Instead if i append an extra "Slash" in the URL, the application is accessible(This is a workaround and not an expected behavior) :
    https://adc2110491.us.oracle.com:4443/test/Calendar/ - This works !
    For such kind of configuration from OHS side, I enabled a property called "*WebLogic Plug-In Enabled*" from "WLS Managed Server -> General settings"
    Please note that, in case When above mentioned Weblogic-Server is NOT SSL, this works fine.
    This error is only in SSL case.
    Also, Pasting the log file below for one such failed request :
    +Tue Apr  9 11:47:12 2013 <1009513655332321> ================New Request: [GET /test/Calendar HTTP/1.1] =================+
    Tue Apr  9 11:47:12 2013 <1009513655332321> INFO: SSL is configured
    Tue Apr  9 11:47:12 2013 <1009513655332321> Using Uri /test/Calendar
    Tue Apr  9 11:47:12 2013 <1009513655332321> After trimming path: '/Calendar'
    Tue Apr  9 11:47:12 2013 <1009513655332321> The final request string is '/Calendar'
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseServerList: Socket Address hostnames  'adc2110491.us.oracle.com:12004'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Host extracted from serverlist is [adc2110491.us.oracle.com]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseServerList:  IP from socket Address [10.232.130.87]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Initializing lastIndex=0 for a list of length=1
    Tue Apr  9 11:47:12 2013 <1009513655332321> getListNode: created a new server node: id='adc2110491.us.oracle.com:12004' server_name='adc2110491.us.oracle.com', port='4443'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferred: availcookie=[s_nr=1365505876368; ADMINCONSOLESESSION=FGY9RkfPy7xrvwn4zYR0LqfTV0vGkBjPxhjxQbQGlkhjXJ22LHXJ!1111363896; _WL_AUTHCOOKIE_ADMINCONSOLESESSION=mSkOg.X9HBLf9jgkR.PJ; JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Found cookie from cookie header: JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397
    Tue Apr  9 11:47:12 2013 <1009513655332321> Parsing cookie JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397
    +Tue Apr  9 11:47:12 2013 <1009513655332321> getpreferredServersFromCookie: [-1304266397]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> primaryJVMID: [-1304266397], secondaryJVMID: []+
    Tue Apr  9 11:47:12 2013 <1009513655332321> No of JVMIDs found in cookie: 1
    Tue Apr  9 11:47:12 2013 <1009513655332321> Number of nodes in the list: 1
    Tue Apr  9 11:47:12 2013 <1009513655332321> SrvrInfo 0 with JVMID:
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferredFromCookie: Start Position is 0, listLen is 1
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferredFromCookie: Either JVMIDs not set or they are stale. Will try to get JVMIDs from WLS
    Tue Apr  9 11:47:12 2013 <1009513655332321> initJVMID: Iterating SrvrList from position 0
    Tue Apr  9 11:47:12 2013 <1009513655332321> ======internal request /bea_wls_internal/WLDummyInitJVMIDs======
    initJVMID: Trying Host[10.232.130.87] Port[12004] SecurePort[12004] useSSL [1] ioTimeout [30] socketTimeout [2]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Local Port of the socket is 22159
    Tue Apr  9 11:47:12 2013 <1009513655332321> Remote Host 10.232.130.87 Remote Port 12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::sendHeaders(): meth='HEAD' file='/bea_wls_internal/WLDummyInitJVMIDs' protocol='HTTP/1.0'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Connection]=[Close]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-Request-ClusterInfo]=[true]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-Force-JVMID]=[unset]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-KeepAliveSecs]=[30]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Need to send 167
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite sent 167, Error = 0
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite completed, sent 167
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: Value of parsedHeaders = [0]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    +Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: CompleteStatusLine set to [HTTP/1.1 404 Not Found]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: StatusLine set to [404 Not Found]
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Connection]=[close]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Date]=[Tue, 09 Apr 2013 18:47:12 GMT]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Content-Length]=[1214]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Content-Type]=[text/html; charset=UTF-8]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-WebLogic-Cluster-Hash]=[yo3Df7lxCy0/YU7vJMjHoUNLu9I]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-Powered-By]=[Servlet/2.5 JSP/2.1]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-WebLogic-Cluster-List]=[-1304266397!183009879!12003!12004]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parsed all headers OK
    Tue Apr  9 11:47:12 2013 <1009513655332321> Parsing cluster list: -1304266397!183009879!12003!12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseJVMID: Parsing JVMID '-1304266397!183009879!12003!12004'
    Tue Apr  9 11:47:12 2013 <1009513655332321> parseJVMID: Actually parsing '-1304266397!183009879!12003!12004'
    Tue Apr  9 11:47:12 2013 <1009513655332321> ServerInfo struct for JVMID '-1304266397' populated, Server Details are: OrigHostInfo [10.232.130.87], isOrigHostInfoDNS [0], Host [10.232.130.87], Port [12003], SecurePort [12004]
    Tue Apr  9 11:47:12 2013 <1009513655332321> Initializing lastIndex=0 for a list of length=1
    +Tue Apr  9 11:47:12 2013 <1009513655332321> initJVMID: Trying to locate Primary or Secondary using SrvrInfo with JVMID [-1304266397]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> initJVMID: Found Primary 10.232.130.87:12003:12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> .....internal request /bea_wls_internal/WLDummyInitJVMIDs.....processed
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPreferredFromCookie: Found 1 servers
    Tue Apr  9 11:47:12 2013 <1009513655332321> attempt #0 out of a max of 5
    Tue Apr  9 11:47:12 2013 <1009513655332321> trying connect to PRIMARY '10.232.130.87'/12003/12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPooledConn: found a host and port/securePort match
    Tue Apr  9 11:47:12 2013 <1009513655332321> getPooledConn: No more connections in the pool for Host[10.232.130.87] Port[12003] SecurePort[12004]
    Tue Apr  9 11:47:12 2013 <1009513655332321> getConnection: Obtained a URL object from factory
    Tue Apr  9 11:47:12 2013 <1009513655332321> getConnection: Setting SSL properties on URL object
    Tue Apr  9 11:47:12 2013 <1009513655332321> Local Port of the socket is 22160
    Tue Apr  9 11:47:12 2013 <1009513655332321> Remote Host 10.232.130.87 Remote Port 12004
    Tue Apr  9 11:47:12 2013 <1009513655332321> created a new connection to preferred server '10.232.130.87/12004' for '/Calendar', Local port:0
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Host]=[adc2110491.us.oracle.com:4443]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[User-Agent]=[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.4) Gecko/20100101 Firefox/10.0.4]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Accept]=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Accept-Language]=[en-us,en;q=0.5]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Accept-Encoding]=[gzip, deflate]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Connection]=[keep-alive]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[Cookie]=[s_nr=1365505876368; ADMINCONSOLESESSION=FGY9RkfPy7xrvwn4zYR0LqfTV0vGkBjPxhjxQbQGlkhjXJ22LHXJ!1111363896; _WL_AUTHCOOKIE_ADMINCONSOLESESSION=mSkOg.X9HBLf9jgkR.PJ; JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from clnt:[ECID-Context]=[1.004qV7vEojhDsXY5HrG7yf0006Jj0000SH;kXjE1ZDLIPHHj4TPnKVB3HOR_UOPXIS]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parse_header is done
    Tue Apr  9 11:47:12 2013 <1009513655332321> Method is GET
    Tue Apr  9 11:47:12 2013 <1009513655332321> About to call parseHeaders
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: Value of parsedHeaders = [0]
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::sendHeaders(): meth='GET' file='/Calendar' protocol='HTTP/1.1'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Host]=[adc2110491.us.oracle.com:4443]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [User-Agent]=[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.4) Gecko/20100101 Firefox/10.0.4]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Accept]=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Accept-Language]=[en-us,en;q=0.5]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Accept-Encoding]=[gzip, deflate]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Cookie]=[s_nr=1365505876368; ADMINCONSOLESESSION=FGY9RkfPy7xrvwn4zYR0LqfTV0vGkBjPxhjxQbQGlkhjXJ22LHXJ!1111363896; _WL_AUTHCOOKIE_ADMINCONSOLESESSION=mSkOg.X9HBLf9jgkR.PJ; JSESSIONID=l2GkRkgJczv7vjf9p2dh892WhDTvHglTHdFMppJLLCxQL1pmyJJN!-1304266397]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [ECID-Context]=[1.004qV7vEojhDsXY5HrG7yf0006Jj0000SH;kXjE1ZDLIPHHj4TPnKVB3HOR_UOPXIS]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Connection]=[Keep-Alive]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [WL-Proxy-SSL]=[true]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [WL-PATH-TRIM]=[test]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [WL-Proxy-Client-IP]=[148.87.19.36]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [Proxy-Client-IP]=[148.87.19.36]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-Forwarded-For]=[148.87.19.36]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-KeepAliveSecs]=[30]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [X-WebLogic-Request-ClusterInfo]=[true]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to WLS: [x-weblogic-cluster-hash]=[yo3Df7lxCy0/YU7vJMjHoUNLu9I]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Need to send 889
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite sent 889, Error = 0
    Tue Apr  9 11:47:12 2013 <1009513655332321> SSLWrite completed, sent 889
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    +Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: CompleteStatusLine set to [HTTP/1.1 302 Moved Temporarily]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> URL::parseHeaders: StatusLine set to [302 Moved Temporarily]
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Date]=[Tue, 09 Apr 2013 18:47:12 GMT]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Transfer-Encoding]=[chunked]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[Location]=[http://adc2110491.us.oracle.com:4443/test/Calendar/]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs from WLS:[X-Powered-By]=[Servlet/2.5 JSP/2.1]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> parsed all headers OK
    Tue Apr  9 11:47:12 2013 <1009513655332321> done with sendRequest
    Tue Apr  9 11:47:12 2013 <1009513655332321> sendResponse() : r->status = '302'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to client (add):[Date]=[Tue, 09 Apr 2013 18:47:12 GMT]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to client (add):[Location]=[http://adc2110491.us.oracle.com:4443/test/Calendar/]+
    +Tue Apr  9 11:47:12 2013 <1009513655332321> Hdrs to client (add):[X-Powered-By]=[Servlet/2.5 JSP/2.1]+
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 3 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=3 toRead=4093
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=5 toRead=4091
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 1 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 297 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 3 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=3 toRead=4093
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=5 toRead=4091
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 1 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill(): first=0 last=0 toRead=4096
    Tue Apr  9 11:47:12 2013 <1009513655332321> Reader::fill() Remaining data length 2 is less than buffer size
    Tue Apr  9 11:47:12 2013 <1009513655332321> calling closeConn() with non-null URL* at 3882
    Tue Apr  9 11:47:12 2013 <1009513655332321> canRecycle: conn=1 status=302 isKA=1 clen=-1 isCTE=1
    Tue Apr  9 11:47:12 2013 <1009513655332321> closeConn: pooling for '10.232.130.87/12004'
    Tue Apr  9 11:47:12 2013 <1009513655332321> closeConn: pooling '0'
    +Tue Apr  9 11:47:12 2013 <1009513655332321> request [Calendar] processed successfully..................+

  • Regarding Header And Footer in Data type Creation

    Hi All,
    Can Any One Please Send me One Screen Shot Developed with Header And Footer in the Data type Creation
    I want to Know How to Create And where to create that in DT Creation
    And Why Do we need Both of these in DT Creation
    Regards
    Vamsi

    Hi,
    Will u Please send One Screen With These Details, So that I Can Uderstand More
    ID : [email protected]
    Please send
    Regards
    Vamsi

  • 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

  • Impact of new order type Creation.

    Greetings all SD experts,
    Currently, there's a new request in my company to create a new Sales Order Type via VOV8. Correct me if I'm wrong here but by creating a new order type, we need to also look into the item category assignment as well as the schedule line and the sales area permitted for the new order type.
    Aside from that, I believe I need to look into the SIS aspect as well the subsequent delivery and billing type ( whether using back the existing types or there's a need for a new creation ).
    My queries are as following :
    1 ) What will be the impact for a creation of new sales order type  besides those mentioned above?
    2 ) And are there any impact in other modules that I should take note of ?
    3  ) What are the subsequents config/settings that I need to look upon creating a new sales order type ?
    4 ) What will be things that I need to take note of if there's a need to create new delivery and billing type ?
    Sorry for the amount of queries above but your valuable input will be greatly appreciated here.
    Many thanks in advance.
    Warmest Regards,
    Edie

    Hi Edie,
    To add / create a new Sales Doc type, u need to do the following config. Also if you are in Support project and you want add this it is always advisible to take reference data from the customer.
    Config required is:
    Assign Sales Document to Sales Area
    Item category determination
    Assign Document Pricing procedure
    Determine pricing procedure
    Assign Output Types
    Assign Incompletion Log
    Assign Partner determination procedure
    Maintain copy control Sales docs to Sales Doc’s & Sales Doc’s to Billing
    Maintain copy control Sales docs to Delivery
    Free Goods  / Material Listing
    Update Groups for LIS
    Scheduling With Route Schedule For Sales Document Type
    all these above assignments need to be done.
    4. You dnt need to create a new delivery and billing type, u can use the existing ones only
    Revert back for any clarifications.
    REward if it helps
    regards
    Srini

  • Problem in HR Custom Info Type Creation

    Hi,
    Created custom info type from PM01...
    Activated... This is working fine in the System and Client where I created.
    But its not working from other client..?
    I am getting error by saying that Info Type is not created... All the Structure and PAXXXX table got activated in both Clients.
    Earlier we faced same problem, at that time our team made some changes to info type and probelm resolved.
    I don't know where and what exactly we need to do...
    But,
    One of the problem I identified is,
    We are not getting T591A, T591S tables at Subtype Tab, Subtype text tab in INFOTYPE CHARACTERSTICS.
    I can enter these two from TECHNICAL ATTRIBUTES... but when I generate all aobjects from PM01, these two values getting deleted from INFOTYPE CHARACTERSTICS.
    (Above may be the reason)
    Please let me know if any solution for this.
    Thanks,
    Naveen Inuganti

    Hi Gautham,
    I deleted previous one, Created as your blog says. Still same problem.
    Venkat,
    Yes, you are correct. We need to release the Customizing request which contains Subtype , Subtype Text Tables with Info Type Entries.
    Problem with Info type Creation
    Thanks,
    Naveen.I

  • Currency type option needed for copa report

    Dear Experts,
    Currency type option needed for copa report.I have checked all the possibilities in ke35 as well.
    how to add curreny type in selection screen for COPA reports.
    regards
    RK

    If you want to create your own report with required currency,
    T CODE - KE35 - Click on "Report" (create), next window appears
    Give the name of the report and description
    The u see 2 options
    1. Basic report
    2. Report with Form
    Select which ever you want and press ENTER
    Here you need to prepare the report format and fields which are there in the right side box
    Hope it helps
    Thanks

  • Is there a way to find non english keyboard letters in the text? I need the extra Norwegian letters

    So i have an english keyboard on my mac and i need the extra Norse letters. what do i do?

    That old saying is true, Peru Bob: "There is a website for that." 
    Gene

  • HT201318 I upgraded to 50gb last night from 20gb , I have realised I don't need this extra storage , how do I downgrade to 20 again and get a refund

    I upgraded to 50gb last night from 20gb , I have realised I don't need this extra storage , how do I downgrade to 20 again and get a refund

    If in the US, follow the link below (you must request a refund within 15 days) -
    https://discussions.apple.com/message/16968425#16968425
    it gives the USA phone number - if you don't live there you will have to find an equivalent number from the 'Contact Us' link at bottom right of this page.

  • I want to add image in column is it possible then how to add image in data base what data type we need to do

    I want to add image in column is it possible then how to add image in data base  what data type we need to give we required any casting  please show me one example
    jitendra

    Hi again,
    Several points that can help more:
    1. If you are working with Dot.Net, then I highly recommend read the first link that you got! This is nice and simple coding. Another option is this link which is even better in my opinion:
    http://www.dotnetgallery.com/kb/resource21-How-to-store-and-retrieve-images-from-SQL-server-database-using-aspnet.aspx
    2. As i mention above both link use the column's type image. There are several other option of working with Files. In most of my applications architecture I find that it is better to use a column which let us use any type of file and not an image column.
    In choosing the right column's type for your needs basically your fist question should be if if you want to store your data inside relational database environment or outside relational environment. It is a good idea to look for blogs on this issue. Next
    if you chose to store your data inside then you need to chose the right column type according to your server version. I highly recommend to look for blogs on the differences between those column's types: IMAGE, 
    Check those links:
    To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem
    http://research.microsoft.com/apps/pubs/default.aspx?id=64525
    FILESTREAM feature of SQL Server 2008
    http://msdn.microsoft.com/library/hh461480
    FileTables feature of SQL Server 2012
    http://technet.microsoft.com/en-us/library/ff929144.aspx
    Compare Options for Storing Blobs (SQL Server)
    http://technet.microsoft.com/en-us/library/hh403405.aspx
    Binary Large Object (Blob) Data (SQL Server)
    http://technet.microsoft.com/en-us/library/bb895234.aspx
    Managing BLOBs using SQL Server FileStream via EF and WCF streaming
    * Very nice tutorial!
    http://petermeinl.wordpress.com/2012/02/20/managing-blobs-using-sql-server-filestream-via-ef-and-wcf-streaming/
    [Personal Site] [Blog] [Facebook]

  • Help needed placing extra images in my portfolio.

    I like to add some more pictures by my portfoliomap.
    I have now 6 items each page and i like to know if its possible to add some more pictures and how i can do this?
    You can find my site at..
    http://www.dorffdesign.nl/affiches.html

    As you can see on
    http://www.dorffdesign.nl/advertenties.html
    it worked out fine..
    Only the last set off images contait to much space between the set before? Do you know where i can adjust this?
    Regards Brian
    Date: Tue, 17 Apr 2012 09:07:38 -0600
    From: [email protected]
    To: [email protected]
    Subject: Help needed placing extra images in my portfolio.
        Re: Help needed placing extra images in my portfolio.
        created by Altruistic Gramps in Dreamweaver - View the full discussion
    Upload the images to the images folder and use the markup as you have been using in the following, changing the name of the image to suit.
    !images/arcadisch_logo.jpg|alt=|src=images/arcadisch_logo.jpg!
    Gramps
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/4340979#4340979
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/4340979#4340979. In the Actions box on the right, click the Stop Email Notifications link.
         Start a new discussion in Dreamweaver by email or at Adobe Forums
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • Database Creation - Need suggestions

    Hi All,
    I have posted a thread under 'Database - General' category. Thought of sharing the same here.
    Please share your inputs on this.
    Database Creation - Need Help
    Thanks in advance

    This has been answered under 'Database-General category' and hence I am markng it answered here. Thank you.

  • Warning: Compiler errors during type creation

    Hello all,
    when I run the following little script in my Oracle 8.1.7 SQL plus spreadsheet I get the following error message:
    "Warning: Compiler errors during type creation". (This is my offhand translation from German, since I have a German version)
    There is no further hint as to what the nature of the error is or how I can fix it, but for sure I can't use the type I tried to define.
    Can anybody help?
    Here is the code:
    set serveroutput on ;
    create or replace type DataPoint as object(
    name varchar2(20)
    create or replace type DataPointList as table of DataPoint ;
    create or replace type ElementType as object (
    TypeName varchar(20),
    Datapoints DataPointList
    create or replace type ElementList as table of ElementType ;
    Regards,
    Norbert Ploett
    null

    create or replace type DataPoint as object(
    name varchar2(20)
    create table DataPointList of DataPoint ;
    create or replace type ElementType as object (
    TypeName varchar(20),
    Datapoints DataPointList
    create table ElementList of ElementType ;
    This should work in the given case
    Ravi
    Regards,
    Norbert Ploett
    Regards,
    Norbert Ploett
    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Norbert.Ploett:
    Hello all,
    when I run the following little script in my Oracle 8.1.7 SQL plus spreadsheet I get the following error message:
    "Warning: Compiler errors during type creation". (This is my offhand translation from German, since I have a German version)
    There is no further hint as to what the nature of the error is or how I can fix it, but for sure I can't use the type I tried to define.
    Can anybody help?
    Here is the code:<HR></BLOCKQUOTE>
    null

  • HT4847 I no longer have the iPhone & do not need the extra storage in Icloud. How do I cancel this?

    I no longer have the iPhone & do not need the extra storage in Icloud. How do I cancel this?

    You can cancel an iCloud storage upgrade but only within 15 days of buying:
    Apple have made this as difficult as possible. However two posters have managed to achieve this. Elizellen was able to use Express Lane to get a refund:
    https://discussions.apple.com/message/19323996#19323996
    However if you use Express Lane may find you cannot proceed without entering a hardware serial number which is still eligible for AppleCare.  julia22 managed to find a way round that by phoning them - please see this post:
    https://discussions.apple.com/message/16968425#16968425
    it gives the USA number - if you don't live there you will have to find an equivalent number from the 'Contact Us' link at bottom right of this page.
    Poster 'CCrefund' has posted a method applicable to users in the UK: https://discussions.apple.com/message/21002309#21002309
    If it is more than 15 days since you purchased the storage you cannot cancel it for a refund; you can downgrade your plan as from your next renewal date. Please see
    http://help.apple.com/icloud/#mmd602084a
    and expand 'Downgrade your storage for the next plan year'.

  • I am taking my iPhone overseas. Will any electric converter work, or is there a specific type I need to protect my phone when charging?

    I am taking my iPhone overseas. Will any electric converter work, or is there a specific type I need to protect my phone when charging?

    The Apple charger is universal, 100-240 volts at 50-60 Hz, the only thing you need is a plug adapter, very inexpensive from stores like Radio Shack in the US, available at many international airports in Europe.

Maybe you are looking for

  • TS1717 Itunes wont open

    I have just loaded itunes on a new computer. When I either try to open the program or attach my ipod I get the user agreement. When I click accept I get program not responding and the detail of the message is APPCRASH. What is going on?

  • Selection screen dynamic enable and disable

    HI all, I have one requirement like on selection of redio button my selection screen hould be enable and disable Like if i select rediobutton  tfile then my selection screen block B2 should enable and Block B3 hould be disable If redio button selscr

  • PPPD in Solaris 8

    Hi, Anyone knows what I have to do in Solaris 8 for using pppd 4.0? I have added the packege, but when I tried to run pppd, I got "kernel lacks ppp support"........... Thanks, BR. //Steven

  • NAC in Inband L2 Virtual mode

    Dear Experts, I m planning to implement NAC INBand virtual mode,as if i have HP and cisco switches in my network,I have read the installation guide and cisco press book for NAC,as if now i want confirmation from you'll experts the step by step proced

  • An unexpected error j3dcore-d3d.dll

    Hi, Could me someone help, please? I'm new with Java3D, I installed version 1.5.1 and just tried to run the HelloUniverse example. Maybe I have a problem with rendering? Many Thanks! The I get this: # An unexpected error has been detected by Java Run