Clearing up DB resources on sessionDestroyed
Hello, we have a session listener class tied to HttpSessionListener. What I want to know is what is the best way to release all DB resources and pending transactions in the sessionDestroyed event? For instance, if the user is running an update transaction and the app crashes somehow, I want to release all these transactions when the session invalidates. Is there something on the Connection object I can use?
Also, we are calling Oracle packages to do all of our transactions, not sure if that makes a difference in your answer.
Usually, database connections should be kept around for the smallest possible amount of time. They are a pretty expensive and scarce resource. Keep them in local variables, and use try/finally to release statements, result sets, and connections. Like so:
void whatever()
Connection connection = null;
PreparedStatement stmt = null;
ResultSet res = null;
try {
String sql = "select ...";
connection = pool.getConnection(); // or however your connection pool works
stmt = connection.prepareStatement(sql);
res = stmt.executeQuery();
while (res.next()) {
} finally {
// Close in reverse order of creation
SqlUtil.close(res);
SqlUtil.close(stmt);
SqlUtil.close(connection);
public class SqlUtil
public static void close(Statement stmt)
if (stmt == null) // can be null if an exception occurred
return;
try {
stmt.close();
} catch (Exception e) {
log.error(e, "error closing database statement");
// ditto for ResultSet and Connection
/* You could also write a close(ResultSet, Statement, Connection).
* That has the advantage that it can close all three, and then throw an SqlException
* if any of the closes failed. Three separate closes can log the exception
* but can't easily pass it upwards.
}
Similar Messages
-
I have created a reserved context with 20% min and max = to min in every resource
including sticky.
I also have the default resource class
I have also created another resource with 20% sticky but left everything else at default 0-100%
our network traffic doesnt carry a heavy load on the new loadbalancer..but what is a good rule of thumb?
most of the traffic is http and at this point we will create about 2 contexts after the AdminHello!
This is a very pertinent question, however as many things in life there is no one size fits all here.
We basically recommend, as best practice, to allocate for each specific context only the estimated needed resources. These values should always come from a previous study on the network patterns/load.
To accomodate for growth and scalability it is strongly advised to initially keep as many resources reserved as possible and allocate the unused resources as needed. To accomplish this goal, you should created a reserved resource class, as you did already, with a guarantee of 20 to 40 percent of all ACE resources and configure a virtual context solely with the purpose of ensuring that these resources are reserved.
As you might already know ACE protects resources in use, this means that when decreasing a context's resources, the resources must be unused before then can be reused by other context. Although it is possible to decrease the resource allocations in real time, it typically requires additional overhead to clear any used resources before reducing them.
Based on the traffic patterns, number of connections, throughput, concurrent SSL connections , etc, for each of the sites you will be deploying you will have a better idea on what might be the estimated needed resources and then assign them to each of the contexts. Thus this is something that greatly depends on customer's network environment.
Hope this helps to clarify your doubts. -
Resource Bundles and Embedded fonts - best practice
Hello,
I am in digging into creating a localized app and I would
like to use embedded fonts.
Ideally, I would like to have two locales (for example), each
with a different embedded font and/or unicode range.
For example, how do I set up my localized app so that EN uses
Arial (Latin Range), and JP uses Arial Unicode MS with Japanese
Kanji unicode range ?
Note that I do know how to embed fonts with different ranges,
I just don't know how to properly embed them into resource bundles
and access them easily in style sheets.
Thanks!
-DanielHello!
This is a very pertinent question, however as many things in life there is no one size fits all here.
We basically recommend, as best practice, to allocate for each specific context only the estimated needed resources. These values should always come from a previous study on the network patterns/load.
To accomodate for growth and scalability it is strongly advised to initially keep as many resources reserved as possible and allocate the unused resources as needed. To accomplish this goal, you should created a reserved resource class, as you did already, with a guarantee of 20 to 40 percent of all ACE resources and configure a virtual context solely with the purpose of ensuring that these resources are reserved.
As you might already know ACE protects resources in use, this means that when decreasing a context's resources, the resources must be unused before then can be reused by other context. Although it is possible to decrease the resource allocations in real time, it typically requires additional overhead to clear any used resources before reducing them.
Based on the traffic patterns, number of connections, throughput, concurrent SSL connections , etc, for each of the sites you will be deploying you will have a better idea on what might be the estimated needed resources and then assign them to each of the contexts. Thus this is something that greatly depends on customer's network environment.
Hope this helps to clarify your doubts. -
Different partner apps share sso schema?
Sorry if this is a stupid question.
Part of the setup and configuration of a partner application is the creation of a database schema, one in which we install the sso pl/sql packages, etc...
I have several partner applications. Does each partner application need to have it's own unique sso schema? Or can all my partner applications share the same sso schema?
Any recommendations?
Thanks!
PhillipTo me it clearly looks like Resource forest scenario. The only difference is, you are Migrating the Mailbox into Own Forest, rather creating a New Mailbox for User in Partner AD.
http://www.msexchange.org/articles-tutorials/exchange-server-2007/planning-architecture/deploying-exchange-resource-forest-part2.html
http://social.technet.microsoft.com/Forums/exchange/en-US/3f020f35-df27-4a16-b3a9-9b0db7d95b61/exchange-2010-resource-forest-how-do-you-assign-permissions-to-share-linked-mailboxes
About Single Sign On
ADFS 2.0 should accomplish it.
Cheers,
Gulab Prasad
Technology Consultant
Blog:
http://www.exchangeranger.com Twitter:
LinkedIn:
Check out CodeTwo’s tools for Exchange admins
Note: Posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. -
Can SQL Developer be used for Oracle Support "HTML Output" Diag Scripts ?
Hi All,
Oracle Support has asked me to run a diagnostic script (OTL_Diag.sql for anyone familar with the script) that produces output in HTML format using SQL*Plus to help troubleshoot an OTL problem we are having. Unfortunately I don't have SQL*Plus installed and my company is not on board with me installing it because of the SQL*NET connection required. Instead I have access to SQL Developer 3.1.0.7. While this works fine for most situations I'm having problems generating the required .html output file that Support needs.
I've tried runing the OTL_Diag.sql a couple of ways using SQL Developer. First, I opened the file from SQL Developer and using the Run Script functionality (F5) I executed the code that way. This method did give me an opportunity to input the necessary parms and it did create the 'start' of the HTML file on my (Windows) file system, but the script seemed to abort with a java error that indicated some sort of format error (sorry, I'm not a java person so I can't provide any more info, but I'll be glad to get the exact error message if anyone thinks that will help solve my issue).
My second approach was to open a SQL Window where I typed in @C:\OTL_Diag.sql without quotes. This approach also gave me the opportunity to enter the necessary input parms and it seemed to end normally. It also created the 'start' of the diaganostic output file on my Windows file system, but it 'completed' before any of the 'real' diaganostic output was written to the .html file.
The Metalink note clearly specifies that the OTL_Diag.sql script is to be run with SQL*Plus 10.2 or above so I don't think I can complain too loudly to Oracle about this...but given that I don't have access to this product (and it is useless for me to again ask to install it) I am hoping someone out there has some ideas or insight as to how I can use SQL Developer to execute this diag script in a manner that will produce the required .html output file.
Thanks in advance to anyone taking time to read my post !!
Jeff
Edited by: user13111861 on Jul 10, 2012 6:43 PM
Edited by: user13111861 on Jul 10, 2012 7:51 PM>
As a result, at this point in time my only available tool to run the OTL_Diag.sql script (provided by Oracle Support) is SQL Developer
>
Then you will have to edit the script, break it into pieces, execute each piece manually and save the output to feed into the next piece as required based on what the script is actually doing. Don't post the script or contents as that will likely violate your support agreement.
As I already mentioned the script may be using syntax and/or commands that are simply not supported by sql*developer. One likely area is the script may be producing intermediate output scripts that are then processed by a later portion of the script. If that is the case then my suggestion to execute the pieces manually should work but you will need to do some trial-and-error to see.
Even if you appear to be successful you will still have an issue when you communicate the results of your 'test' to Oracle support and they determine you didn't follow their instructions to use the proper tool.
Sounds like your management is either ignorant or incompetent so I suggest you cover yourself by documentating the instructions from Oracle support and the direct orders you were given to disregard those instructions. No need to discuss that issue further but clearly there are resources available somewhere in the org that has the proper privileges or they wouldn't be able to maintain and support the database. If they want to pay for support they should heed their advice. Nuff said. -
Memory leak on the native side
Hello,
I am hoping someone here can offer some troubleshooting advice, as I am completely stumped. I am running JBoss 5.1 with JDK 1.6_u18 (same problem with u17 and u16 too)
- 32-bit, Linux (RHEL 5).
- min/max heap setting of 1024M
- permgen max of 256M
- Thread stack size of 128K
- No JNI
My problem: The memory footprint of the JVM slowly grows until it hits the 3G OS limit. This takes about 8 hours under moderate load. At this time, it of course dies as it has no more addressable memory left.
Here is the strange part: I have used every possible memory debugging tool (jmap, Eclipse MAT, etc) and nothing looks out of the ordinary in my Java heap. Thread count stays at a reasonable 350 threads, Java heap size stabilizes at about 500M. For the first hour or so, the JVM footprint stays at about 1.7G, which makes sense. After that it starts to slowly grow until in exceeds the 3G limit.
What can I do to figure out where the leak is occurring? There is clearly some native resource that is being allocated but not freed. As I indicated, all the Java analysis tools report a healthy, stable heap and thread count.
Thanks in advance.
JonThanks for the reply.
I have confirmed with -verbose:jni that the only JNI libraries getting loaded are those belonging to the JDK. My application does make heavy use of the ProcessClassLoader from the Jboss JBPM library, but classes all seem to be unloading normally, and my Permgen usage stays very low and stable. Is there anything I should look at in regards to this class loader? I have tried both a lack of GC parameters and specified the concurrent mark sweep collector, with the same results. -
JMS Web Services in latest OC4J 9.0.3
Just trying out the JMS Web services in OC4J 9.0.3 just released today. Using Ant 1.5 and updated the build.xml file as directed. Using JDK 1.3.02.
Trying the JMS Web Service demo #2 based on JMS on top of Oracle AQ. Everything works fine - queues set up fine, OC4J configured nicely, and the following steps of the build work fine: clean, setup, compile, mdbjar ...
But when I get to the assemble step it crashes with the following error:
assemble:
[echo] assembling Web Services EAR. ..
[java] Please wait ...
[java] java.io.IOException: CreateProcess: javac proxy\JmsDemo2Proxy.java error=2
[java] at java.lang.Win32Process.create(Native Method)
[java] at java.lang.Win32Process.<init>(Win32Process.java:66)
[java] at java.lang.Runtime.execInternal(Native Method)
[java] at java.lang.Runtime.exec(Runtime.java:551)
[java] at java.lang.Runtime.exec(Runtime.java:418)
[java] at java.lang.Runtime.exec(Runtime.java:361)
[java] at java.lang.Runtime.exec(Runtime.java:325)
[java] at oracle.j2ee.ws.tools.WsAssmProxyGenerator.doCompile(WsAssmProxyGenerator.java:284)
[java] at oracle.j2ee.ws.tools.WsAssmProxyGenerator.processProxy(WsAssmProxyGenerator.java:131)
[java] at oracle.j2ee.ws.tools.WsAssmProxyGenerator.clientGenerate(WsAssmProxyGenerator.java:120)
[java] at oracle.j2ee.ws.tools.WsAssembler.assemble(WsAssembler.java:92)
[java] at oracle.j2ee.ws.tools.WsAssembler.main(WsAssembler.java:64)
[java] Exception in thread "main"
BUILD FAILED
file:D:/oc4j903/webservices/demo/basic/jms_service/demo2/build.xml:63: Java returned: 1
What is interesting is the WSDL and proxy appear to have been generated successfully. Even the jmsws2.ear and mdb_service2.jar files appear generated ok. But the web.xml is missing so perhaps this is where it died. Any clues as to what might be wrong ... are changes required in the config.xml file driving the WebServicesAssembly tool?
Thanks for any help.Went a little further ... given the assembly error seemed to occur on the last step creating the proxy.jar file, I simply skipped over it and did the deployment (changed the build.xml to continue assembly upon failure). This seemed reasonable as all the ear and war files where there; the only missing piece appeared to be the proxy.jar.
The deployment of the service was successful and I downloaded the proxy.jar file from the OC4J instance which in turn allowed me to compile the Web service client. Things were looking up here.
However, when I ran the service I got an error indicating the wrong number of arguments to the underlying queues. Given it got through to the database, I assume my configuration is set up correctly but it is a little hard to debug from here. Here is the error I got (note tried on 9.0.1 and 9.0.2 database):
D:\oc4j903\webservices\demo\basic\jms_service\demo2>java -classpath client;proxy/JmsDemo2_proxy.jar;%CLASSPATH% JmsDemo2
Client
Doing the Send Operation ..on Element
<employee>
<name>Bob</name>
<emp_id>1234</emp_id>
<position>assistant manager</position>
</employee>
[SOAPException: faultCode=SOAP-ENV:Server; msg=oracle.jms.AQjmsException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'AQ$_JMS_ENQUEUE_OBJECT_MESSAGE'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
at JmsDemo2Proxy.makeSOAPCallDocument(JmsDemo2Proxy.java:73)
at JmsDemo2Proxy.send(JmsDemo2Proxy.java:47)
at JmsDemo2Client.main(client/JmsDemo2Client.java:19)
The two oc4j configuration files requiring editing datasources.xml and application.xml are included below. Datasources was straightforward; I wasn't quite clear about the <resource-provider> entry in application.xml as it wasn't clear if this is a top level element or what. See the very end of this post to see where I put it.
Datasources.xml
<?xml version="1.0" standalone='yes'?>
<!DOCTYPE data-sources PUBLIC "Orion data-sources" "http://xmlns.oracle.com/ias/dtds/data-sources.dtd">
<data-sources>
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="OracleDS"
location="jdbc/OracleCoreDS"
xa-location="jdbc/xa/OracleXADS"
ejb-location="jdbc/OracleDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="scott"
password="tiger"
url="jdbc:oracle:thin:@localhost:5521:oracle"
inactivity-timeout="30"
/>
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="OracleDS"
location="jdbc/wsDemoEmulatedOracleCoreDS"
xa-location="jdbc/xa/wsDemoEmulatedOracleXADS"
ejb-location="jdbc/wsDemoEmulatedDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="jemuser"
password="jempasswd"
url="jdbc:oracle:thin:@127.0.0.1:1521:O901"
inactivity-timeout="30"
/>
</data-sources>
application.xml
<?xml version="1.0" standalone='yes'?>
<!DOCTYPE orion-application PUBLIC "-//Evermind//DTD J2EE Application runtime 1.2//EN" "http://xmlns.oracle.com/ias/dtds/orion-application.dtd">
<!-- The global application config that is the parent of all the other
applications in this server. -->
<orion-application autocreate-tables="true"
default-data-source="jdbc/OracleDS">
<web-module id="defaultWebApp" path="../../home/default-web-app" />
<web-module id="dms0" path="../../home/applications/dms0.war" />
<web-module id="dms" path="../../home/applications/dms.war" />
<connectors path="./oc4j-connectors.xml"/>
<persistence path="../persistence" />
<!-- Path to the libraries that are installed on this server.
These will accesible for the servlets, EJBs etc -->
<library path="../../home/lib" />
<library path="../../../sqlj/lib" />
<library path="../../../rdbms/jlib/xsu12.jar" />
<!-- Path to the taglib directory that is shared
among different applications. -->
<library path="../../home/jsp/lib/taglib" />
<!-- Uncomment the following element to use JAZN-XML as UserManager
<jazn provider="XML" location="./jazn-data.xml" />
-->
<principals path="./principals.xml" />
<log>
<file path="../log/global-application.log" />
</log>
<commit-coordinator>
<commit-class
class="com.evermind.server.OracleTwoPhaseCommitDriver" />
<property name="datasource"
value="jdbc/OracleDS"/>
<!-- Username and password are the optional properties
replace with your commit_co-ordinator_super_user
<property name="username"
value="system" />
<property name="password"
value="manager" />
-->
</commit-coordinator>
<data-sources path="data-sources.xml" />
<namespace-access>
<read-access>
<namespace-resource root="">
<security-role-mapping>
<group name="administrators" />
</security-role-mapping>
</namespace-resource>
</read-access>
<write-access>
<namespace-resource root="">
<security-role-mapping>
<group name="administrators" />
</security-role-mapping>
</namespace-resource>
</write-access>
</namespace-access>
<resource-provider class="oracle.jms.OjmsContext" name="wsdemo">
<description> OJMS/AQ </description>
<property name="datasource" value="jdbc/wsDemoEmulatedDS">
</property>
</resource-provider>
</orion-application>
Any suggestions? Wait for production?
Mike. -
Fetch GLPCA-SPRCTR instead of csks-PRCTR - Urgent
Hi All,
i have a report which dispalys a column profit center (CSKS-PRCTR).
My functional wants to replace this field (CSKS-PRCTR) with GLPCA-SPRCTR.
I tried with various option but not successful. Any help would be highly appreciated.
Thanks,
Senthil
Message was edited by:
senthil kumarHi,
The problem is that i am getting multiple records, the input given is controlling area, company code, date, plant, account number and functional area.
I am pasting my code here
start-of-selection.
perform get_data.
perform update_profit_center. "+D01K962014
perform produce_output.
*& Form GET_DATA
form get_data.
clear: t_month, t_days, t_year, t_date_from, t_date_to, t_line.
Month of Period to Analyze
t_month = p_perio2+1(2).
Year of Period to Analyze
t_year = p_gjahr2.
Get number of days of Period to Analyze
call function 'NUMBER_OF_DAYS_PER_MONTH_GET'
exporting
par_month = t_month
par_year = t_year
importing
par_days = t_days.
Put dates together for select from AFRU
concatenate p_gjahr1 p_perio1+1(2) '01' into t_date_from.
concatenate t_year t_month t_days into t_date_to.
Select Process Orders only for Dates specified
select aufnr into table itab_aufnr
from afru
where budat ge t_date_from
and budat le t_date_to
and werks in s_werks.
Sort and delete duplicates from Orders table
sort itab_aufnr.
delete adjacent duplicates from itab_aufnr.
describe table itab_aufnr lines t_line.
if t_line gt 0.
Now select all other data with regard to Orders in Orders table
select carbpl aauart awerks aaufnr bmatnr clmnga csptag "vornr
c~erdat "+D01K962077
fmaktx jktext
into table itab
from ( ( ( ( ( ( (
aufk as a inner join afpo as b on baufnr = aaufnr )
inner join s022 as c on caufnr = baufnr and
cmatnr = bmatnr and
cwerks = bpwerk )
inner join makt as f on fmatnr = bmatnr )
inner join tkkap as g on gkokrs = akokrs )
inner join tkv09 as h on hkokrs = akokrs )
inner join crhd as i on iarbpl = carbpl )
inner join crtx as j on iobjty = jobjty and
iobjid = jobjid )
for all entries in itab_aufnr
where a~aufnr eq itab_aufnr-aufnr
and a~auart in s_auart
and a~werks in s_werks
and c~arbpl in s_arbpl
and g~kokrs in s_kokrs
and g~versa in s_versa
and h~awvrs in s_awvrs.
sort itab by aufnr matnr.
delete adjacent duplicates from itab comparing aufnr matnr.
loop at itab.
concatenate 'OR' itab-aufnr into lr_objnr-low.
lr_objnr-sign = 'I'.
lr_objnr-option = 'EQ'.
append lr_objnr.
endloop.
sort lr_objnr.
delete adjacent duplicates from lr_objnr.
call function 'KKR_COOBJECT_VALUES_READ'
exporting
i_kokrs = s_kokrs-low
I_OBJNR =
i_gjahr_von = p_gjahr1
i_gjahr_bis = p_gjahr2
i_perio_von = p_perio1
i_perio_bis = p_perio2
i_nur_belast = ' '
I_KATYP =
I_NUR_P_I =
I_NUR_P_I_S =
i_kontrollkosten = ' '
i_read_owaer = ' '
i_pvers = '000'
i_ivers = '000'
i_svers = s_awvrs-low
i_avers = s_versa-low
i_bewsicht = '0'
I_CONV_UNITS = 'X'
IMPORTING
E_KENNZAHLEN =
tables
rng_objnr = lr_objnr
RNG_WRTTP =
RNG_BEKNZ =
t_kennzahlen = lt_keyfigures
T_KKBC =
T_KKROBJ =
T_KKBOB =
exceptions
no_kokrs_set = 1
no_input_data = 2
different_input_data = 3
OTHERS = 4
endif.
endform. " GET_DATA
*& Form update_profit_center
update profit center for each line item in itab
form update_profit_center.
data: lv_objid like crhd-objid,
lv_kokrs like crco-kokrs,
lv_kostl like crco-kostl,
lv_prctr like csks-prctr.
field-symbols: <fs_itab> like line of itab.
update profit center into itab - alv output table
loop at itab assigning <fs_itab>.
clear lv_objid.
read resource/work center id of resource/work center of a plant
-CRHD
select objid into lv_objid
from crhd
where objty = 'A' and " A - work center
use order creation date instead of period to analyse"+D01K962077
begda <= <fs_itab>-sptag and "+D01K962077
endda >= <fs_itab>-sptag and "-D01K962077
begda <= <fs_itab>-erdat and "+D01K962077
endda >= <fs_itab>-erdat and "+D01K962077
arbpl = <fs_itab>-arbpl and " resource/work center
werks = <fs_itab>-werks. " plant
exit.
endselect.
clear: lv_kokrs,lv_kostl.
if not lv_objid is initial.
read cost center using work center id and date to analyse field to
validate from and to valid periods- CRCO
select kokrs kostl
into (lv_kokrs,lv_kostl)
from crco
where objty = 'A' and
objid = lv_objid and
use order creation date instead of period to analyse"+D01K962077
endda >= <fs_itab>-sptag and "-D01K962077
begda <= <fs_itab>-sptag. "-D01K962077
endda >= <fs_itab>-erdat and "+D01K962077
begda <= <fs_itab>-erdat. "+D01K962077
exit.
endselect.
if sy-subrc eq 0.
clear lv_prctr.
read profit center of cost center that belongs to a date to
analyse period - from CSKS
<b>*** This quesry needs to be replaced with GLPCA table</b>
select <b>prctr into lv_prctr</b>
from csks
where kokrs = lv_kokrs and " Controlling Area
kostl = lv_kostl and " Cost Center
use order creation date instead of period to analyse"+D01K962077
datbi >= <fs_itab>-sptag and "-D01K962077
datab <= <fs_itab>-sptag. "-D01K962077
datbi >= <fs_itab>-erdat and "+D01K962077
datab <= <fs_itab>-erdat. "+D01K962077
exit.
endselect.
if sy-subrc eq 0.
update profit center to itab
<fs_itab>-prctr = lv_prctr. " Profit Center
endif.
endif.
endif.
endloop.
endform. " update_profit_center
Senthil.
Message was edited by:
senthil kumar
Message was edited by:
senthil kumar -
Adobe Air and Flash Future on Desktop and Mobile Devices
Hello,
iam interested to develop for mobil and desktop devices with AS3 and Flash Professional and i have any question.
I see also many benefits to develop in flash as in java because javas gui development is based on swing a old java graphics engine.
Next reason is the plattform like Linux,Windows,IOS.,the Game Development and other stuff.
With Flash i can create nextgen interactive stunning cool gui interfaces for apps.
I dont know why flash sucks for the market and devices.
My question: is as3 and flash save for the future ?
Make it really sense to learn as3 and Flash ?
I have read many blogs,threads on adobe and other forums year 2012 Adobe stop flash development,
and now 2013 google androids kitkat now have removed api features that kills complete flash !!!
Other comments says Flash is dead for the market!? Many frustradet flash developers he work 10 years and more with flash are crying.
So what is really the Future for the A3 and Flash Development ?
Thanks and greetingsHi mc_gfx,
> You think i can get started with flash and air development without worries?
Software development always involves risk, so you can't really do much without worries. AIR in particular is a cutting (bleading?) edge technology. Adobe is attempting to solve a difficult problem with limited resources, and the results aren't always ideal.
If you want to deploy to Android and iOS, and you write two native apps, you face a 100% risk that you'll have to write your app twice. While this may not take twice as long as writing it once, it will come close.
If you use AIR, you only have to write your app once, but you face other risks.
Here's the problem. In AIR, Adobe is attempting to create a framework that translates ActionScript into bytecode for two different platforms. This isn't easy. Every time Apple or Google upgrades their operating system Adobe has to try to refine AIR so that it translates everything correctly for the new OS. AIR also has to maintain backward compatability with all previous OSs (is that the plural of OS?). AIR also has to work with many different models of Android and iOS devices. This includes supporting most, though not all, of the many different capabilities that these OSs support. Adobe, wisely, doesn't try to support every new feature immediately. Instead, it picks and chooses which new features it will support, and how soon. But even taking this approach I have the impression that their task is daunting.
If you research this forum you'll find numerous examples of people complaining about features that don't quite work correctly. For example, I've put ~6 developer months into developing a language learning app, only to find that AIR's MP3 playback support has some limitations which severely impact the playback of voice recordings, which severely degrades the value of my app. I'm hoping that Adobe will fix this bug, but it's been two months now, with no movement. Another serious bug, involving audio recording using the device microphone, took three months to get fixed. During that period I had no idea whether it would get fixed, or whether I'd have to disable an important feature of my app on iOS.
So, you want "without worries"?
Some people are lobbying Adobe to include support for Windows Phone in the AIR framework. IMHO, this is madness. Adobe clearly has limited resources. Let them first focus on making basic features like MP3 playback work properly on the platforms that they already support.
The same issues probably apply to all the other cross-platform development frameworks - Sencha, Xamarin, etc. They face the same difficult technical challenges. I can't speak to the question of how well they're addressing them, but I'd want research them carefully before I invested a lot of time into developing with them.
With regards to AIR, here's my advice: Before you start a non-trivial project using AIR, make a list of all the things that your app will do, then see if you can find existing apps created with AIR that do these things. Make sure that the feature works on both Android and iOS. You won't be able to test on every device that you'd like to support, but pick a few and test on them.
You don't need to worry about your app's logic - ActionScript is great for that - and AIR translates it just fine. But think carefully about your app's 'skin' - all the ways that you want it to interact with the outside world - input and output - and confirm that apps exist that demonstrate that AIR can handle these features. Also think about the app's infrastructure - network interactions - database interactions - etc.
You'll probably end up with a list of features that you haven't been able to confirm. You can vet these by creating a proof of concept that confirms that AIR will support these needs. Do this before you start developing the full app. Once that's done, pray that everything that works now will continue to work with future OSs and devices. Adobe has a pretty good record on this sort of things, but there aren't any guarantees.
Don't worry, be happy ?
HTH,
Douglas -
Can't start Tux 6.5 BBL
Hi. I hope someone can help me with the following problem.
I am trying to resolve a problem starting a PeopleSoft Process Scheduler
maintained by Tuxedo 6.5 on AIX 4.3 Each time I attempt to start it, it
starts two of the three required processes, then fails with the following
error (quoted below)
134053.mypsoft!PSPRCSRV.150102: LIBTUX_CAT:262: INFO: Standard main
starting
134100.mypsoft!PSDSTSRV.167178: 11122001: TUXEDO Version 6.5 AIX 2 4
007025954C00.
134100.mypsoft!PSDSTSRV.167178: LIBTUX_CAT:262: INFO: Standard main starting
134101.mypsoft!PSDSTSRV.167178: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
134101.mypsoft!tmboot.170552: 11122001: TUXEDO Version 6.5 AIX 2 4
007025954C00.
134101.mypsoft!tmboot.170552: tmboot: CMDTUX_CAT:827: ERROR: Fatal error
encountered; initiating user error handler
134101.mypsoft!tmboot.170552: ERROR: Erro
134112.mypsoft!tmshutdown.167182: 11122001: TUXEDO Version 6.5 AIX 2 4
007025954C00.
134112.mypsoft!tmshutdown.167182: LIBTUX_CAT:577: ERROR: Unable to register
because the slot is already owned by another process
134112.mypsoft!tmshutdown.167182: FATAL: internal error: CMDTUX_CAT:764:
ERROR:can't attach to BB
134116.mypsoft!BBL.170034: CMDTUX_CAT:26: INFO: The BBL is exiting system
After first closing down ALL processes owned by the relevant user to ensure
that there were no JSH/JSL WSH/WSL etc processes floating a round, and still
being unable to start the system, I checked the BEA support website and
various news groups.
I looked up the BEA Codes for these errors, and determined that it probably
relates to a dirty shutdown, and some IPC resources floating around, so I
did an ipcs -mo and searched for orphaned (0 in the "NATTCH" field)
resources belonging to the relevant user, then removed them with an ipcrm -m
(id_name). I still had the same problem.
Short of a reboot, does anyone have any ideas on how to proceed?
Regards,
Bruce Gillespie
Peoplesoft System Administrator
Lang Corporation
[email protected]Thanks for your reply.
The ipcrm you gave me was a bit drastic - I sure wouldn't want to use it on
a Production System! And I agree with your assessment that I'd have a clean
slate afterward - I could eat my dinner off it!
I had already (a bit more selectively) cleared up ipc resources for the
specific user, to no avail, unfortunately. However, you were correct in
pointing the error to a non Tuxedo source, which surprised me. I had
already pretty extensively scoured the Peoplesoft log files - (they are all
over the place), but after increasing the logging level I found an entry in
"stdout" which advised me that an ftp test run by the psoft system on
startup had failed, which then bought the system back down. It must have
been this which was reporting the error back to Tuxedo, seemingly with an
incorrect error code resulting, sending me on the wild goose chase for ipc
resources. It was a quick fix to sort the ftp problem, and the system has
now started.
Unfortunately, it means that there is little use in referencing the Tuxedo
error codes for the error, as psoft doesn't seem to correctly interface with
them and they bear little resemblance to what is actually occurring.
Surprise surprise.
Thanks for your help.
Regards,
Bruce Gillespie
"Peter Holditch" <[email protected]> wrote in message
news:[email protected]...
Bruce,
The 1st error that looks odd is
134101.mypsoft!PSDSTSRV.167178: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
This is caused by PeopleSoft code failing to initialise the server
correctly and reporting an error at starup to Tuxedo. Are there logs or
somesuch generated by PeopleSoft that might indicate the cause of this
failure?
If the machine isn't a production system (or if you can completely
discontinue service) the best way to guarantee a clean slate is to
remove all ipc resources (this will possibly upset databases, etc on the
box too) with
ipcs | while read a b c d ; do ipcrm -$a $b ; done
I am, however, pretty sure that the root cause of the problem is the
error generated by peoplesoft that I picked out above.
I hope that helps.
Regards,
Peter.
Got a Question? Ask BEA at http://askbea.bea.com
The views expressed in this posting are solely those of the author, andBEA
Systems, Inc. does not endorse any of these views.
BEA Systems, Inc. is not responsible for the accuracy or completeness of
the
information provided
and assumes no duty to correct, expand upon, delete or update any of the
information contained in this posting.
Bruce Gillespie wrote:
Hi. I hope someone can help me with the following problem.
I am trying to resolve a problem starting a PeopleSoft Process Scheduler
maintained by Tuxedo 6.5 on AIX 4.3 Each time I attempt to start it, it
starts two of the three required processes, then fails with the following
error (quoted below)
134053.mypsoft!PSPRCSRV.150102: LIBTUX_CAT:262: INFO: Standard main
starting
134100.mypsoft!PSDSTSRV.167178: 11122001: TUXEDO Version 6.5 AIX 2 4
007025954C00.
134100.mypsoft!PSDSTSRV.167178: LIBTUX_CAT:262: INFO: Standard main
starting
134101.mypsoft!PSDSTSRV.167178: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
134101.mypsoft!tmboot.170552: 11122001: TUXEDO Version 6.5 AIX 2 4
007025954C00.
134101.mypsoft!tmboot.170552: tmboot: CMDTUX_CAT:827: ERROR: Fatal error
encountered; initiating user error handler
134101.mypsoft!tmboot.170552: ERROR: Erro
134112.mypsoft!tmshutdown.167182: 11122001: TUXEDO Version 6.5 AIX 2 4
007025954C00.
134112.mypsoft!tmshutdown.167182: LIBTUX_CAT:577: ERROR: Unable toregister
because the slot is already owned by another process
134112.mypsoft!tmshutdown.167182: FATAL: internal error: CMDTUX_CAT:764:
ERROR:can't attach to BB
134116.mypsoft!BBL.170034: CMDTUX_CAT:26: INFO: The BBL is exiting system
After first closing down ALL processes owned by the relevant user toensure
that there were no JSH/JSL WSH/WSL etc processes floating a round, andstill
being unable to start the system, I checked the BEA support website and
various news groups.
I looked up the BEA Codes for these errors, and determined that itprobably
relates to a dirty shutdown, and some IPC resources floating around, so I
did an ipcs -mo and searched for orphaned (0 in the "NATTCH" field)
resources belonging to the relevant user, then removed them with anipcrm -m
(id_name). I still had the same problem.
Short of a reboot, does anyone have any ideas on how to proceed?
Regards,
Bruce Gillespie
Peoplesoft System Administrator
Lang Corporation
[email protected] -
How to implement the JDBC call over SSL on Oracle?
I searched the forums and google. It seems to support Oracle 9i JDBC call, Thin driver can not work and we should use OCI.
I referenced OTN Oracle java example about the SSL, it talked about the security socket but not anythingabout JDBC. http://download-west.oracle.com/docs/cd/B10501_01/network.920/a96573/asoappf.htm#634403
Who can provide a clear description and resource URL to tell how to make a simple implementation on JDBC over SSL.
Thanks a lot.That article you referenced is referring to the JVM that runs when one runs java stored procedures. It has nothing to do with JDBC.
You have a unusual requirement (probabaly originated as the same place as your alias.)
Most of the time SSL is not needed for the database because the database and the applications that talk to it are already on a secured network.
You can investigate some third party drivers, I believe I recall seeing that one of them does SSL.
Alternatively you might look into a secure VPN connection. The connection travels over IP and tunnels other traffic through it. Given that the tunned itself is secure, the contents are as well. -
Bit off topic: Storyboarding
Hey guys
What app are you using to create storyboards? Googling the idea just returns a bunch of terrible looking apps that seem just Windows based.
I can draw my own panels, then retouch in photoshop and layout the boards with InDesign, but its not ideal (just reordering scenes is a bit of a pain)
Any recommendations will be greatly appreciated
Thanks
FedeWouldn't hurt if the folks of this thread commented also over on the "Story" Adobe board ... trying to get somethint better out of them for us.
I did talk with one of the Story people at NAB ... he explained that Story was actually (in application) pretty much designed to fit the needs of a major cable/sat news network, and they hadn't really put that much thought into the program past that. On listening to what I wanted to be able to use it for, which is to help design my short little interview projects and web-'mercials and such, he thought for a moment, and did say that there was probably use for this with more people than they had thought there would be ... that the current limitations might largely be from a lack of imagination on their own part, as far as envisioning an actual current market that would be available to them.
It was very clear that the resources would be available only as the upper management saw an immediately approachable market.
While we were chatting, a "Sr. Manager" by badge came over to join the conversation, and we re-capped the previous comments including the Story dude's comment. The "Sr. Manager" nodded thoughtfully, and admitted that at his level they hadn't really put any thought into Story as more of a wide-use program ... period. It was pretty much thought of as for X client ... and even he admitted that on continued thinking, that is probably less than optimal on Adobe's part.
Not that he was committing any more resources to it, mind you ... sigh ... -
Move Group in Application Defenition Editor
Hi,
I'm busy with a little PoC and I try to change the sequence of my screens/Groups via the Application Definition Editor (JHeadstart_10131_26) I encountered two problems, however moving Groups normally did not cause any problems before! My problem was reproducible and might be due to the significant number of Foreign Key relations in the database?
Problem 1:
Generated a First-Cut application and all menu (Tabs) navigations worked fine. Navigations did NOT work correctly anymore for the (new) first Group, up to the previous first Group (!) after moving the First Group below any other Group.
Problem 2:
The 'Tabname' properties of the affected Groups did not correlate anymore with the Displayed names. So, wrong screen where displayed when a Tab was selected.
Solution:
- Moved all Groups to the desired position, except the first Group;
- Regenerated the application and faced again problems with Tabname properties. Changed ALL ‘Tabnames‘ in the Application Definition Editor (had to be done anyway), applied changes and regenerated the application;
- Everything looked/functioned normal. Moved first Group down, regenerated and tested. No errors…
I did NOT encounter this problem/behaviour before with any “How to” example or other little application. Please explain this behaviour and it’s no problem to mail my application if your Team would like to reproduce it.
Greeting,
Michael KreuwelSteven,
I’ll try if this problem occurs when I generate a First-Cut application based on the HR schema, but I used this version of JHeadstart and JDeveloper for several ‘how to’ instructions, also using HR… However I easily managed to find a solution for all oddities, I did have two other strange problems:
· Resource Bundles where emptied when they where opened in the editor and the Jheadstart Generator did not stop anymore (waited 10 minutes) It was clear that de Resource Bundles where processed based on de OC4J Server Log. Solution: close Resource Bundles, rebuild View project. I thought this was only relevant in case of Java Classes?!?
· I could not regenerate my application after adding a Static Domain (reproducible) with EL statement to retrieve Entries from the Bundles. No problems occurred when the first Static Domain was immediately applied to one or more items!
I’ll report the result with HR and my offer that I can send you the case stands. It’s a small data model (< 10 tables) I finished my PoC almost, so these problems are not blocking.
Greetings,
Michael -
PMON / abnormal ended processes
Hi,
as far as I understand now, PMON will clear up the resources of an abnormal ended process, release locks, blocks of the process in the database buffer cache and so on.
I'm trying to understand how Oracle will handle processes that has ended abnormal. Assuming an SQL*Plus do a network connection and starts e.g. a long running update. During this update the terminal of SQL*Plus will be killed. Will SQL*Plus rest in the database and what will happens then? Who will remove the network connection, the process from v$session and so on. These dependencies are not clear to me.
May anyone can give me a short explanation or anyone have a good link where this is explained? I know that this will be a complex issue and can't be explained with a few words, but a short explanation could help to find the right hooks to get a deeper understanding.
Thank you in advance!
Best regards,
AlexHi,
pgoel wrote:
Hi, I think it is the same PMON who periodically cleans up the occupied resources by such terminated processes.yes, indeed, that will be done by PMON. But I'm trying to understand how PMON will do that work. If an abnormal ended session is in the instance, how will PMON identify it and what will it do?
Regards,
Alex -
Jdeveloper 10.1.3 and subversion svn folders
we have lately started using subversion via...tortoise svn on windows xp. I also downloaded the Jdev 10.1.3 preview.
Now, within each folder of the project a ".svn" hidden folder gets created. When I open my project in Jdeveloper ... in the Applications Navigator window, my workspace has the following structure when I select the Package List view:
myWorkspace
|__myProject
|__Application Sources
|__svn
|__svn.prop-base
|__svn.props
|__svn.text-base
|__svn.scprops
|__com.mycompany.mydept.someproject.db
|__com.mycompany.mydept.someproject.db.svn
|__com.mycompany.mydept.someproject.db.svn.prop-base
|__com.mycompany.mydept.someproject.db.svn......
|__com.mycompany.mydept.someproject.utils
|__com.mycompany.mydept.someproject.utils.svn
|__........
I tried using the following options to get rid of it but nothing seems to happen.
* Try 1
right-click "myProject" >>> Project Properties >>> Project Content
(Use Project Settings is selected)
Added ".svn" folders in Exclude Subfolders option
* Try 2
right-click "myProject" >>> Project Properties >>> Project Content >>> Resources
(Use Project Settings is selected)
Cleared everything in Resources and Exclude Subfolders boxes
I scanned thro Jdev Help and saw the following thinking that I will disable directory lookup display and change it to display from .jpr file.
However the irony is that I dont see an Input Paths node as mentioned in the Help, within Tools >> Project Properties.
To set a project to be based on a directory:
1. In the Application Navigator, select the project.
2. From the main menu, choose Tools >> Project Properties, or right-click and choose Project Properties.
The Project Properties dialog opens with the common input paths displayed or on the last page that you viewed.
3. If not already selected, select the Input Paths node. 4. On the Input Paths page, select Scan Source Paths to Determine Project Contents.
Does anybody else have the node in their Jdev 10.1.3.
Please send in some suggestions on how to disable the display of the ".svn" folders in the Applications Navigator.
Rgds,
JacoBPlease, check the ide.properties
9.0.5.x
%JDEVELOPER_HOME%/jdev/system9.0.5.x/ide.properties
10.1.3.x
%JDEVELOPER_HOME%/jdev/system/oracle.jdeveloper.10.1.3.x
Modify Ide.ProjectExcludeFilters property append the value
*/.svn/*
Ex :
Ide.ProjectExcludeFilters=*/.cvs/*;*/CVS/*;*.rvi;*.keep;*.contrib*; ...
JaimeG
Maybe you are looking for
-
My hard drive on my IMac died, so I have a new hard drive. I want to sync my Ipad(which has the files I lost when my old hard drive died) back with my IMac. How can I sync my Ipad with my new IMac hard drive without erasing my legacy files on the Ip
-
Dear BI fans, We are now playing with the Bex-Analyzer and we try to see how much we can do to make our reports as user friendly as possible. To do this we would like to define some buttons to trigger some commands/ commands sequences². We have been
-
Can I "catch" a click on a sortable column header of a report?
Hi, I have a report. Most columns are made sortable: users can click on them to sort. I notice that when clicked only page-rendering executes (i.e. not page processing). Here is the question. I need to call some custom PL/SQL when the user clicks on
-
IPhoto '09 trouble with deleting photos
I have a large amount of photos on iphoto. (13,000+) I am attempting to take them off.To make sure I have backups I first put them onto an external drive and also burn CD or DVDs. For some of my photos this has been successful. For a majority of them
-
HOW I IDENTIFY THE PROGRAM INSTALED BY MACKEEPER IN MY SAFARY AND DELETE IT? THE TELEPHONE THET APPEARS IN MY COMPUTER EVERITIME I TRY TO OPEN SAFARI IS: 1-800-996-8348, AND GET LOCKED, THEN FROM (510)344-6458 CALLS SOMEONE DANIEL, FROM TECNICAL S