Caching XSLT results?
Hi,
I am a newbie to XML/XSLT, and we have just written our first XSL stylesheet.
I am using the WebLogic JSP Tag Library to do the transformation from XML to HTML
and all seems to work well. My question is this: Does WebLogic cache the HTML
somewhere so that the transformation does not need to be reperformed each time
the page is requested by the user? It sounds like an obvious thing to do, but
I'm not sure if this functionality is included in WebLogic. If it is not, are
there others out there who have this same need (to cache XSLT results for performance
reasons) and how have you dealt with this issue. Any help would be appreciated.
I'm running WLS 6.0 SP2 on HP-UX 11.x. Thanks...
Vasuki.
I tried this example based on a view:
CREATE MATERIALIZED VIEW MV_TEST2
REFRESH COMPLETE
START WITH SYSDATE
NEXT SYSDATE + 1/48
WITH ROWID
AS SELECT * FROM test1;REFRESH COMPLETE -- The complete refresh re-creates the entire materialized view.
START WITH SYSDATE -- run now
NEXT SYSDATE + 1/48 -- run again in half an hour
WITH ROWID -- I think this option is important if you use partial refresh of the view.
AS SELECT * FROM test1; -- test1 is a view:
CREATE OR REPLACE VIEW TEST1 AS
SELECT st_id, st_name
FROM aaw_solution_tree;Are column indexes still possible? I'm not sure:
Indexing: !with respect to MV's on 10gR2 Jonathan Lewis wrote! ... you are allowed to create indexes on the tables that sit under materialized views - just don't make them unique indexes
How much freedom is there in setting the refresh rate?
What type of refreshing do you need?
Another useful link: [http://asktom.oracle.com/pls/ask/search?p_string=materialized+view|http://asktom.oracle.com/pls/ask/search?p_string=materialized+view]
Hope it helps.
Tobias
Similar Messages
-
Caching XQuery Result in OSB for Performance Improvement
Hi,
I have written a custom XPath function in Java to pick the IP address of the machine and registered the same with Oracle Service Bus 11g.
In the Proxy Message Flow, the server IP is picked at run time by using XQuery that refers to the Custom Function.
Now, is there a way to cache this result some where in OSB so that in the subsequent execution, the XQuery will pick the cached value from Cache instead of making a call to Custom Function registered with OSB.
I'm asking this question to understand if performance optimization is possible here by caching the result.
Thanks,
CCHi All,
Have implemented Java Callout and Custom XPath in the same flow and kept current datetime stamp before and after each of these steps to calculate the difference b/w timestamps thereby finding the execution times of Java Callout and Custom XPath steps (this may not be an elegant way of calculating the execution time of each step in OSB message flow, request someone to suggest the most recommended approach here!) ...
For a load of 10 users, each submitting 10 requests (total 100 requests), following are the execution times (in milliseconds) collected for 10 requests (Server is not occupied with any other activity at this time):
Java Callout(milliseconds) | Custom XPath(milliseconds)
13 | 1
4 | 0
5 | 1
1 | 2
0 | 1
1 | 0
1 | 0
1 | 0
1 | 0
1 | 2
Where the value of '0' is appearing, I assume it could be some micro seconds. The difference happens to be zero in some cases as we don't have microsecond level logging.
Thanks,
CC
Edited by: Chandu on 19-Jul-2011 22:02 -
Cannot query using both conforming and cached query result
TopLink doesn't allow me to both use conforming and cached query result at the same time.
Conforming is certainly not a superset of the [cached query result] features.
Can you confirm that it's a limitation of TopLink?
Any know workaround to end-up with the same features as using both conforming and cached query result?
Conforming is about seeing modifications you do in the same transaction. As a bonus, if you query for one object and specify at least the id as criteria because TopLink will have to check in memory anyway it can avoid going to the database.
But if I do a query like "give me employees hired before now and after 30 days ago" it's about more than one objects and about finding existance so cached query result is needed to get acceptable performance in a complex application trying to avoid the same SQL generated over and over again.Thats where the trace just ends? It doesnt look like there's any LIKE or filtering going on (with respect to the Oracle pieces anyway), apparently MSAccess simply requested the whole table.
What do you mean by 'hang' exactly? Are you sure it's just not taking a long time to complete? How long have you waited? How fast does it complete on the other environment?
ODBC tracing isnt likely to help much for that. SQLNet tracing would be better to see what is going on at a lower level. Specifically, what is going on at the network level? Is the client waiting for a packet to be returned from the database?
Is the database having a hard time processing the query, perhaps due to index/tuning issues?
Assuming that is indeed the query that is "hung", how much data does that return?
Are you able to reproduce the same behavior with that query and vbscript for example?
Greg -
Portal seems to cache RFC results
Hi,
we are calling an RFC in an R/3 4.6C server from an
EP6 SP9 (sneak preview) using JCA. The call is succesful,
but the portal seems to cache the call results; i.e. if
we change the data returned by the RFC the portal receives
the old values. If we restart the portal the returned data
changes, but only on the first call.
I suppose there is some setting for caching RFC results,
but I am not able to find it.
Thanks in advance.
MattiaHere it is:
BAPI:
FUNCTION zep_test.
*"*"Local interface:
*" EXPORTING
*" VALUE(RETURN) LIKE BAPIRET2 STRUCTURE BAPIRET2
*" TABLES
*" T_AVVISI STRUCTURE ZLIST_AVVISI
DATA:
l_wa_avvisi LIKE LINE OF t_avvisi
CLEAR return.
CLEAR t_avvisi.
REFRESH t_avvisi.
* l_wa_avvisi-cdl = 'E'.
* l_wa_avvisi-avvisi = 1.
* APPEND l_wa_avvisi TO t_avvisi.
* l_wa_avvisi-avvisi = 7.
* APPEND l_wa_avvisi TO t_avvisi.
* l_wa_avvisi-avvisi = 8.
* APPEND l_wa_avvisi TO t_avvisi.
* l_wa_avvisi-avvisi = 55.
* APPEND l_wa_avvisi TO t_avvisi.
* l_wa_avvisi-avvisi = 7.
* APPEND l_wa_avvisi TO t_avvisi.
* l_wa_avvisi-avvisi = 1.
* APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-cdl = 'R'.
l_wa_avvisi-avvisi = 12.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 30.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 1.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 5.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 10.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 27.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-cdl = 'M'.
l_wa_avvisi-avvisi = 13.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 7.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 8.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 10.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 2.
APPEND l_wa_avvisi TO t_avvisi.
l_wa_avvisi-avvisi = 34.
APPEND l_wa_avvisi TO t_avvisi.
return-type = 'S'.
ENDFUNCTION.
The component is a variation of the jca.SampleComponent.par I found either on SDN or in a note (sorry, I can't seem to find it anymore). I only
changed the doJca method (below).
public void doJca(IPortalComponentRequest request, IPortalRequestEvent event) {
System.out.println("doJca()");
Context ctx = null;
// IConnectionFactory connectionFactory = null;
IConnection client = null;
ConnectionProperties prop = null;
String rfm_name = "ZEP_TEST";
String system_alias = request.getParameter("system");
if (system_alias == null) {
app.putValue(
"error",
"Couldn't establish a connection with a target system " + system_alias + ".");
return;
System.out.println("system_alias = " + system_alias);
app.putValue("error", "");
app.putValue("exportParams", "");
app.putValue("system_alias", system_alias);
try {
// Obtain the initial JNDI context
// ctx = new InitialContext();
// Perform JNDI lookup to obtain connection factory
// connectionFactory = (IConnectionFactory) ctx.lookup("EISConnections/SAPFactory");
// IConnectionSpec spec = connectionFactory.getConnectionSpec();
// ((Map) spec).put("client", "100");
// ((Map) spec).put("UserName", "");
// ((Map) spec).put("Password", "");
// ((Map) spec).put("logonmethod", "UIDPW");
// ((Map) spec).put("Language", "EN");
// ((Map) spec).put("ashost", "");
// ((Map) spec).put("sysnr", "01");
// IConnection client = connectionFactory.getConnectionEx(spec);
IConnectorGatewayService cgService =
(IConnectorGatewayService) request.getService(IConnectorService.KEY);
try {
prop = new ConnectionProperties(request.getLocale(), request.getUser());
} catch (Exception e) {
app.putValue(
"error",
"Couldn't establish a connection with the user " + request.getUser() + "." + e);
return;
try {
client = cgService.getConnection(system_alias, prop);
} catch (Exception e) {
StringWriter wr = new StringWriter();
e.printStackTrace(new PrintWriter(wr));
app.putValue(
"error",
"Couldn't establish a connection with a target system " + system_alias + "." + wr.toString());
return;
* Start Interaction
IInteraction interaction = client.createInteractionEx();
System.out.println("Starting Interaction...");
IInteractionSpec interactionSpec = interaction.getInteractionSpec();
interactionSpec.setPropertyValue("Name", rfm_name);
* CCI api only has one datatype: Record
RecordFactory recordFactory = interaction.getRecordFactory();
MappedRecord importParams = recordFactory.createMappedRecord("CONTAINER_OF_IMPORT_PARAMS");
IFunctionsMetaData functionsMetaData = client.getFunctionsMetaData();
IFunction function = functionsMetaData.getFunction(rfm_name);
if (function == null) {
app.putValue(
"error",
"Couldn't find " + rfm_name + " in a target system " + system_alias + ".");
return;
* How to invoke Function modules
System.out.println("Invoking... " + function.getName());
MappedRecord exportParams = (MappedRecord) interaction.execute(interactionSpec, importParams);
app.putValue("exportParams", exportParams);
* How to get structure values
IRecord exportStructure = (IRecord) exportParams.get("RETURN");
String columnOne = exportStructure.getString("TYPE");
String columnTwo = exportStructure.getString("NUMBER");
String columnThree = exportStructure.getString("MESSAGE");
System.out.println(" RETURN-TYPE = " + columnOne);
System.out.println(" RETURN-CODE = " + columnTwo);
System.out.println(" RETURN-MESSAGE =" + columnThree);
* How to get table values
IRecordSet exportTable = (IRecordSet) exportParams.get("T_AVVISI");
exportTable.beforeFirst(); // Moves the cursor before the first row.
while (exportTable.next()) {
String column_1 = exportTable.getString("CDL");
String column_2 = String.valueOf(exportTable.getInt("AVVISI"));
System.out.println(" COMPANYCODE_LIST-COMP_CODE = " + column_1);
System.out.println(" COMPANYCODE_LIST-COMP_NAME = " + column_2);
* Closing the connection
interaction.getConnection().close();
client.close();
} catch (ConnectorException e) {
app.putValue("error", e.toString());
System.out.println("Caught an exception: n" + e);
throw new RuntimeException(e);
} catch (Exception e) {
app.putValue("error", e.toString());
System.out.println("Caught an exception: n" + e);
throw new RuntimeException(e);
When I uncomment the commented section in the BAPI
(or I comment out some more of it), the result displayed
by the iView does not change until I restart the portal.
Thanks in advance!
Mattia -
I have another post for general descriptor tag information but I do have a specific question. In a project I am looking at I see:
<cache-usage> check cache by primary key </cache-usage>
<cache-query-results>false</cache-query-results>
<maintain-cache>true</maintain-cache>
I'm not sure how to interpret this. Does this mean that a cache is in place or not? cache-query-rests is set to false which implies no caching, yet the other parameters imply a cache is in place. What overrides here?
ThanksThe XML maps directly to the API so the JavaDocs and related documentation are the best tools:
cache-usage: query.setCacheUsage(int)
This option indicates how the object cache should be used when processing the query. This is how in-memory query is configured as well as support for cache-hits on ReadObjectQuery.
cache-query-result: query.setShouldCacheQueryResults(boolean)
This option allows you to indicate that the results returned from the query execution should be held. When the query is executed again these results will be returned without going to the database or searching the object cache. This is just caching the results locally within the query.
maintain-cache: query.maintainCache() or query.dontMaintainCache()
This setting determines if the results returned from the query should be cached in the shared object cache. It is on by default and turning this off is very rare. Occasionally done to compare the cache version with the database verision when handling an optimistic locking failure.
Doug -
Hi guys,
I have this page which calls the same query (across a database link!) four times! First when an initial LOV is generated (and the page is loaded), again for another LOV based off the initial one and finally for the report generated based off the 2 selections. This is crazily slow (30-40 seconds each load~) and also: When you try to sort with an Interactive Report by clicking the column names it then queries the database again (I assumed this part was cached but apparently not). I therefore need to cache the results from an initial query and then just limit the results locally. How can I do this? Guides? Examples?
Thanks for help.
MikeI tried this example based on a view:
CREATE MATERIALIZED VIEW MV_TEST2
REFRESH COMPLETE
START WITH SYSDATE
NEXT SYSDATE + 1/48
WITH ROWID
AS SELECT * FROM test1;REFRESH COMPLETE -- The complete refresh re-creates the entire materialized view.
START WITH SYSDATE -- run now
NEXT SYSDATE + 1/48 -- run again in half an hour
WITH ROWID -- I think this option is important if you use partial refresh of the view.
AS SELECT * FROM test1; -- test1 is a view:
CREATE OR REPLACE VIEW TEST1 AS
SELECT st_id, st_name
FROM aaw_solution_tree;Are column indexes still possible? I'm not sure:
Indexing: !with respect to MV's on 10gR2 Jonathan Lewis wrote! ... you are allowed to create indexes on the tables that sit under materialized views - just don't make them unique indexes
How much freedom is there in setting the refresh rate?
What type of refreshing do you need?
Another useful link: [http://asktom.oracle.com/pls/ask/search?p_string=materialized+view|http://asktom.oracle.com/pls/ask/search?p_string=materialized+view]
Hope it helps.
Tobias -
Cache database results within any of your software applications?
Have you had to cache database results within any of your software applications? What are the advantages and pitfalls developers should be aware of when caching database results.
plz reply....
........thnks.We have cached the database results in client side cache (partially in arrays and in files on OS as well). But this caching is restricted to purely STATIC data (which undergoes no change under any circumstances).
Our application relies a lot on static data and we managed to reduce 10% of network bandwidth with this implementation.
We tried using client side cache for not-so-static data but had lot of issues related to refresh of the same so we reverted that change.
On a side note, this does remind me of the client result cache available in Oracle 11g.
http://download.oracle.com/docs/cd/B28359_01/server.111/b28279/chapter1.htm#FEATURENO06989
See if it helps you. -
Pending messages in queue consume cache and result slow processing
Hi All
I have one stand alone java application which is consumer of one weblogic JMS queue.
What my application does, it take big messages in to xml format and convert it in to small chunk of xml using XSLT.
Here I am struggling with one major problem when I sent 10 messages all together all messages went in to pending queue and as application process only one messages at a time, there for other messages waste the cache and processing become slow.
If I send same 10 messages one by one after completion of last messages total time to process 10 messages is very less then compare to if I sent all together.
Is there any web logic setting I can do so only one messages goes in to pending queue.Ali,
How about this:
142# imsimta qm dir | grep '^ *[0-9]' | wc -l
14I don't know that it's significantly better, but "qm" generates only a single line of output per message whereas "cache" provides like 10/message.
Bill -
Applying XSLT to XSLT result in Java
I want to apply a 2nd XSLT to results of ProcessXSL. I started from JDeveloper sample code: TransformedShoppingCart.java. After I have applied one XSL I want to apply another. Code snip:
//Up to here have read in an xml file,
//parsed it and read an xsl file.
//This processXSL works fine.
DocumentFragment df1 = processor.processXSL(theXSLStylesheet, theXMLDoc1);
//The next one fails:
//Read another XSL file
XSLStream = FindElement.class.getResourceAsStream("/product1.xsl");
if (XSLStream == null) {
System.out.println("product1.xsl not found in the CLASSPATH.");
XSLStylesheet theXSLStylesheet2 = new XSLStylesheet(XSLStream,null);
// Transform df1 by theXSLStylesheet2 to create df2
DocumentFragment df2 = processor.processXSL(theXSLStylesheet2, df1);
I get this error:
Error: (76) method processXSL(oracle.xml.parser.v2.XSLStylesheet, org.w3c.dom.DocumentFragment) not found in class oracle.xml.parser.v2.XSLProcessor.
Why? When I look at documentation on OTN at: http://technet.oracle.com/doc/oracle8i_816/server.816/a76935/oracle_x.htm#1027364
I see a version of processXSL:
processXSL(XSLStylesheet, XMLDocumentFragment)
Is my problem that I am passing DocumentFragment instead of XMLDocumentFragment? If so how do I convert my DocumentFragment to XMLDocumentFragment? I tried casting but it didnt like that either.
nullYou'll have to write an adapter for that in Interconnect. BPEL uses XSLT for transformations.
-
Guys, I have written a servlets which create an xml file .... depends on JSP form... i want to run my xslt on it and produce .csv and .html..... I have two xslt file... I was wondering if i can store xslt file in cache... because it's taking to long to download... is there any better way to do it?
O'reilly....
mentioned of javax.xml.transform.Templates interface
Source xsltSource = new StreamSource(xsltFile);
TransformerFactory transFact = TransformerFactory.newInstance();
Templates cachedXSLT = transFact.newTemplates(xsltSource);
Transformer trans = cachedXSLT.newTransformer();
is this a good way to do it? or is there any other better way...
how about...
HashMap cachexslt = new HashMap();
cachexslt.put("HTML", filename);
cachexslt.put("CSV", filename):
if (formatType,equals("HTML")
cachexslt.get("HTML") and run it on my xml file
else run my csv xslt on xml file...
-SumitO'Reilly is correct. The Templates object is reusable and can be cached.
-
No way to cache method results?
hi,
recently I've had quite a few methods in objects that are quite computationally expensive (or I/O expensive), and that the results of consume little memory.
the reaction was to add code like this
import java.util.*;
class A {
Map arg2result = new HashMap();
public Object f(Object arg1, String arg2){
List args = new ArrayList();
args.add(arg1);
args.add(arg2);
if(!arg2result.containsKey(args)){
Object result;
... some work ...
arg2result.put(args,result);
return arg2result(args);
}which works great, but having to do this each time you want to cache a method is very tedious!
I've tried using the java.lang.reflect.InvocationProxy to make a proxy that would do this, but now believe its not possible.
The ideal solution might be a new keyword cached?
class A {
public cached Object f(Object arg1, String arg2){
Object result;
... some work ...
return result;
}but doing something like
MyObjectType mot1 = new MyObjectType();
MyObjectType mot2 = CacheFactory.cache(mot);would be nice as an alternative. Not having have any class that you want to cache implement an interface of its own method would be a major advantage..
thanks,
asjfNo, you do not need to alter or re-design the classes at all to >conform to any interface. Here's some of what I use, which won't >compile as-is (I just cut out the most relevant parts, that you might >find useful)thanks, I'm getting a ClassCastException with this?
when you say "you do not need to alter or re-design the classes at all to conform to any interface", is this assuming the class already implements at least one interface?
thanks,
asjf
import java.util.*;
import java.lang.reflect.*;
class Fibonacci {
public int f(int n) {return n<2 ? 1 : f(n-1) + f(n-2);}
public class Cache2 implements InvocationHandler {
static Map method2arg2result = new HashMap();
Object o;
public Cache2(Object o){this.o=o;}
public static Object wrap(Object o) {
Class clazz = o.getClass();
Class[] interfaces = clazz.getInterfaces();
return Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), // use SystemClassLoader for now
interfaces, new Cache2(o));
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if(!method2arg2result.containsKey(method))
method2arg2result.put(method, new HashMap());
Map arg2result = (Map) method2arg2result.get(method);
List realarg = Arrays.asList(args); // array equality is identity equality
if(!arg2result.containsKey(realarg))
arg2result.put(realarg, method.invoke(o,args));
return arg2result.get(realarg);
public static void main(String [] arg) throws Exception {
Fibonacci fibonacci = new Fibonacci();
Object wrapped = wrap(fibonacci);
System.out.println(wrapped.getClass());
Fibonacci proxy = (Fibonacci) wrapped;
time(fibonacci,"Without cache");
time(proxy,"With cache");
public static void time(Fibonacci f, String s){
long time = -System.currentTimeMillis();
for(int i=0; i<40; i++)
System.out.print(f.f(i) + (i==39 ? "\n" : ", "));
System.out.println(s+" "+(time+System.currentTimeMillis())+"\n");
} -
Displaying a XSLT result in a JTextArea Using the Proper Encoding
Hi!
I'm trying to output the result of my xslt into a JTextArea however I can't seem to output it in its proper encoding.
I have this code to transform my xml:
Source source = new StreamSource(xmlFilePath);
source.setSystemId(new File(xmlFilePath).toURL().toExternalForm());
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
And I'm using this to redirect System.out to the JTextArea:
textAreaPrintStream = new TextAreaPrintStream(OutputTextArea, System.out);
System.setOut(textAreaPrintStream);
With TextAreaPrintStream as:
package ati.xslt.transformer.gui;
import java.io.*;
import javax.swing.*;
public class TextAreaPrintStream extends PrintStream {
private JTextArea textArea;
private final static String newline = "\n";
public TextAreaPrintStream(JTextArea area, OutputStream out){
super(out);
textArea = area;
public void println(String string) {
textArea.append(string + newline);
textArea.setCaretPosition(textArea.getText().length());
public void print(String string) {
textArea.append(string);
textArea.setCaretPosition(textArea.getText().length());
public void write(byte[] buf, int off, int len) {
super.write(buf, off, len);
textArea.append(new String(buf, off, len));
textArea.setCaretPosition(textArea.getText().length());
public void write(byte[] b) throws IOException {
super.write(b);
textArea.append(new String(b));
textArea.setCaretPosition(textArea.getText().length());
If I set result as file and not the System.out, my output xml is correct.
Can someone help me with this?
-- Jeffyou can use AJAX for this.. google maps is using ajax for rendering their maps..
-
Caching search results required
We have the following scenario:
1. Custom search portlet is on a tab on a page and
is used for searching portal items.
2. When the search results are displayed - the item
has an Edit link associated with it which links to
a custom jsp page where the item attributes can be
edited.
3. After editing the attributes on the jsp page, we would like
to return to the page where the user came from (the search
results) - but the last search results must be retained on the
page when the user returns back. Currently every time we go back to the
search results - the old results are not cached.
Any thoughts on how we could achieve this caching of
the search results?
Thanks,
SuzanneHi,
Unfortunately that is not something that is happening with us..my search form still shows the same serach results of the previous search even if i navigate to another tab and get back to it !
I am using a custom search portlet with Oracle 10g as portal version
thanks -
Hi,
Does WebLogic Server (7.0 or 8.1) offer a functionality to cache the WebService
results in the
server-side?
Thanks,
Charles.Hi Charles,
No, but if you could describe your "use case" it would be helpful to
understand; possibly existing functionality could be adapted or future
enhancements could be put into the product.
Thanks,
Bruce
Charles Desmoulins wrote:
>
Hi,
Does WebLogic Server (7.0 or 8.1) offer a functionality to cache the WebService
results in the
server-side?
Thanks,
Charles. -
How to see the cached DNS result
Dear All,
Can anyone tell me how to see my DNS caching server cached info ? Where the info had been queried by some DNS clients.
Thanks a lot !
CKDepending on your bind version, but with recent version you can use rndc dumpdb
to let bind dump its cache. If you want to log the queries and clients you can turn on logging but please be aware of the overhead and disk usages. Please consult Sun document 816-4556 and Bind9ARM document.
Maybe you are looking for
-
Display replaced...but iSight led doesn't work
I've a Macbook Pro (June '07) on which i've totally repleaced the display. They (the apple support) have mounted the new MacBook Pro display (Feb '08), that is as the old one, but with only one difference: http://nobi.com/nobilog/archives/001795.html
-
Hi, Request for Reverse Posting - can anyone explain me this in detail with example. Regards,RAMU.
-
Okay, so my initial post was on my gmail issues (hope you can help with that issue!). Now I thought to just add my hotmail account in the meantime. Guess what?! Error message "your device had a problem connecting to the server"..... is my BB malfunct
-
In i photo11,how do I change the number of thumbnails in the rows?
In I photo 11, how do I change the number of thumbnails in the rows? I now have 5 large thumbs across, but I would like to have 10 or 12 normal sized thumbnails in each of the rows. Thanks
-
Phone is locked in Airplane mode, Is there a way to get it out without having to use the touch screen because it is broken.