Problem with global temporary table in Oracle 10g

Hi All,
I face a peculiar problem in Oracle 10g with respect to Global temporary table.
Have Oracle 10g version in Production and 11g version in UAT.
Table_
create global temporary table TT_TEMPGPSMANUAL
  Col_1    VARCHAR2(50),
  Col_2    VARCHAR2(500),
  Col_3    VARCHAR2(50),
  Col_4    VARCHAR2(50),
  Col_5    VARCHAR2(15),
  Col_6    VARCHAR2(20),
  Col_7    VARCHAR2(250),
  Col_8    VARCHAR2(20),
  Col_9    VARCHAR2(15),
  Col_10   VARCHAR2(20),
  Flag     NUMBER,
  Col_11   INTEGER,
  Col_12   VARCHAR2(50)
on commit preserve rows;So this should preserve the rows inserted into this table until the session ends.
Have a webpage in front-end where in turn, it opens another page (session is carried through) and a few rows will be inserted to this table from the webpage (through a function) on submit and the current page will be closed.
From the parent page, if I open the sub-page data inserted in the temporary table are held and displayed (another function to fetch the values in the Global Temp table).
The Problem in Oracle 10g (Production) is, this is not happening properly. When I close and open the sub-page, not every time I get the data stored i.e if I close and open the page 10 times, atelast 4 times the data is missed in the page (I am not getting values from temp table) randomly.
But this does not happen in UAT (which has Oracle 11g installed) as I get the data in the webpage consistently. After passing UAT, when we rolled out to Prod, getting this issue which we are unable to get what could be the reason.
It is very hard to debug using GTT dynamically in prod. It takes time to get Oracle 11g installed in Prod.
Can anyone suggest?
Regards
Deep

935195 wrote:
Also, I am opening the sub-page from the parent page (through a hyperlink). Then in this case, Would session will be changed from parent to subpage? (I am not aware exactly and have the impression that, as the second page is a child, I guess it would take the same session).I'm not sure what "sub-page" or "parent page" means to you. If you're just linking from one page to another, "parent" and "child" don't really make sense since page A links to page B and B links to A quite frequently.
Assuming that you have to log in to access the site, it is likely that the two pages share the same middle tier application session. It is unlikely that the middle tier would hold the database session from the first request open waiting to see if the user eventually requested the second page. It is theoretically possible that you could code your middle tier this way but it is extremely unlikely that you would want to do so for a variety of reasons. So, when you say "would [the] session ... be changed", it is likely that the application session would be the same for both calls but that the database session would be different.
Justin

Similar Messages

  • Problem with global temporary table with rows

    Scenario :
    I need to create a table for generating a report in a oracle 10g database. Data population in the table depends on the parameter passed from front end.
    I have created global temporay table to achieve this. But use of same table by another user is not possible.
    I have created the global temporary table as follows:
    ''Create global temporay table xyz (a varchar2(10),b varchar2(10)) on commit preserve rows''

    You have not posted much details.
    But yes, global temporary tables are session specific. So other session won't see anything.
    Amardeep Sidhu
    http://amardeepsidhu.com/blog
    http://oracleadmins.wordpress.com

  • Problem with GLOBAL TEMPORARY TABLE  into SP

    im trying to create a temporary table into a sp but it show me an error , this is the store
    CREATE OR REPLACE PROCEDURE sp_sample IS
    BEGIN
    CREATE GLOBAL TEMPORARY TABLE tmp_datos_entrada
    ON COMMIT DELETE ROWS AS
         Select * from Customer where NAME = 'LOPEZ';
    END sp_sample

    Hi,
    You can't execute DDL directly in PL/SQL, it's not supported.
    You can, however, use Native Dynamic SQL to do this in the following manner:
    begin
       execute immediate 'create table t(x int)';
    end;You will need to use the autonomous_transaction pragma to maintain transactional integrity.
    But you may want to think about WHY you are doing this in a SP. You should probably just create the global temporary table as a permanent database object. It's refreshed on commit anyway -- I think you're missing the point slightly.
    cheers,
    Anthony

  • Transaction with Global Temporary Table

    Problem:
    Transaction starts with few DML statements and in the middle we are calling a JAVA method which creates the dynamic global temporary table and proceeding with few DML statements, if one of the statement fails, in the exception clause we are trying to rollback and transactions after the DDL (create global temp table) are rolled back and transactions before the DDL (create global temp table) are committed.
    We cannot pre-create the global temporary table, since we do not know the number of temp table to be pre-created.
    How we can resolve this issue? The same concept works for SQL server.
    Example of our issue:
    --drop table table1 purge;
    --drop table t_id purge;
    Create table table1 (col1 number, col2 varchar2(20));
    Insert into table1 values (1, 'Test1');
    Create global temporary table t_id (id number);
    Insert into table1 values (2, 'Test2');
    Rollback;
    After the rollback you can see only the 'Test1' record.

    > We cannot pre-create the global temporary table, since we do not know the number of temp table to be pre-created.
    I don't see how one procedure could need to create an unknown number of temporary tables. Do they all have different (and unknown) column lists? Couldn't you combine them into a single table with a key to distinguish betweeen the different sets of rows?

  • Doubt with Global Temporary table

    hi,
    i have created a global temporary table with ON COMMIT DELETE ROWS option. in my Function in a loop i m inserting values into this Table, after that loop closes and then i m selecting some other values from DB. and in the last i am returning a ref cursor which is selecting values from temporary table i hav created.
    now the thing is i m not getting any values in the cursor.
    later I have created the table with ON COMMIT PRESERVE ROWS option, in this case cursor returning values,
    can anyone explain me the functionality, as per my knowledge global temporary table values are session specific so why i m not getting the values in the 1st case when i used ON COMMIT DELETE ROWS (same session).
    Thanks
    Piyush

    Ok, here's a simple example, like we'd like to see from you not working....
    First create a GTT with ON COMMIT DELETE ROWS...
    SQL> ed
    Wrote file afiedt.buf
      1* create global temporary table mytable (x number) on commit delete rows
    SQL> /
    Table created.Now a simple function that populates the GTT and returns a ref cursor to the data without doing any commits (hence the data should be there!)
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace function pop_table return sys_refcursor is
      2    v_rc sys_refcursor;
      3  begin
      4    insert into mytable
      5    select rownum from dual connect by rownum <= 10;
      6    OPEN v_rc FOR SELECT x FROM mytable;
      7    RETURN v_rc;
      8* end;
    SQL> /
    Function created.So now we call the function and get a reference to our ref cursor...
    SQL> var v_a refcursor;
    SQL> exec :v_a := pop_table();
    PL/SQL procedure successfully completed.So, in principle, because no commits have been issued the ref cursor should return data...
    SQL> print v_a;
             X
             1
             2
             3
             4
             5
             6
             7
             8
             9
            10
    10 rows selected.... which it does.
    Now, what happens if we do that again...
    SQL> commit;
    Commit complete.
    SQL> exec :v_a := pop_table();
    PL/SQL procedure successfully completed.... but this time we commit before retrieving the data...
    SQL> commit;
    Commit complete.
    SQL> print v_a;
    ERROR:
    ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
    no rows selected
    SQL>Oracle has (correctly) lost reference to the data because of the commit.
    So show us what yours is doing.

  • Are global temporary tables in Oracle 10.2 behaving differently?

    My procedure is creating and inserting data into a Global Temporary Table (on commit data is preserved). I am running this procedure in two different environments.
    The first environment is running under Oracle 10.2 and after the procedure runs successfully I can not see any data inserted in the GTT.
    When I run the very same procedure in the second environment which runs under Oracle 9.2, it works fine, runs successfully and I can see all rows inserted in the GTT.
    Can someone explain this? What should I do differently in the Oracle 10.2? Any thoughts?
    Thank you very much.

    Hi,
    The following TEMPORARY table is created with the attribute, ON COMMIT DELETE ROWS. This allows an application to load registration entries into the global temporary table and manipulate that data with SQL statements. The data is deleted upon each commit with the clause ON COMMIT DELETE ROWS.
    CREATE GLOBAL TEMPORARY TABLE student_reg_entries
    student_name VARCHAR2(30),
    reg_entries reg_entry_varray_type
    ) ON COMMIT DELETE ROWS;
    Replace ON COMMIT DELETE ROWS with ON COMMIT PRESERVE ROWS to retain temporary table data throughout the database session, regardless of any commits made during that session.
    The following illustrates a PL/SQL block that populates this temporary table with two classes each for two students. It makes no difference how many other applications are currently using this temporary global table for similar purposes. For the code below, two rows are inserted, then a COMMIT, after which a SELECT shows that the table is empty.
    DECLARE
    classes_to_take reg_entry_varray_type :=
    reg_entry_varray_type();
    BEGIN
    classes_to_take := reg_entry_varray_type(
    reg_entry('CS101', 'C' ),
    reg_entry('HST310', 'C' ));
    INSERT INTO student_reg_entries VALUES
    ('John', classes_to_take);
    classes_to_take := reg_entry_varray_type(
    reg_entry('ENG102', 'C' ),
    reg_entry('BIO201', 'C' ));
    INSERT INTO student_reg_entries VALUES
    ('Mary', classes_to_take);
    END;
    This next SELECT returns two rows:
    SQL> SELECT * FROM student_reg_entries;
    Row 1:
    John
    REG_ENTRY_VARRAY_TYPE
    (REG_ENTRY('CS101','C'), REG_ENTRY('HST310','C'))
    Row 2:
    Mary
    REG_ENTRY_VARRAY_TYPE
    (REG_ENTRY('ENG102','C'), REG_ENTRY('BIO201','C'))
    A COMMIT automatically deletes rows making the table available for the next session transaction.
    SQL> COMMIT;
    SQL> SELECT * from student_reg_entries;
    no rows selected
    The full information about this article is in the link I post before, I'm just showing this extract of the article because some people don't like to read links....
    Cheers,
    Francisco Munoz Alvarez
    http://www.oraclenz.com

  • Scalability issue with global temporary table.

    Hi All,
    Does create global temporary table would lock data disctionary like create table? if yes would not it be a scalable issue with multi user environment?
    Thanks and Regards,
    Rudra

    Billy  Verreynne  wrote:
    acadet wrote:
    am I correct in interpreting your response that we should be using GTT's in favour of bulk operations and collections and in memory operations? No. I said collections cannot scale. This means due to the fact that collections reside in expensive PGA memory, you cannot stuff large data volumes into them. Thus they do not make an ideal storage bin for temporary data (e.g. data loaded from file or a web service). GTTs otoh do not suffer from the same restrictions, can be indexed and offer vastly better scalability and so on.
    Multiple passes are often needed using such a data structure. Or filtering to find specific data. As a GTT is a SQL native, it offers a lot more flexibility and performance in this regard.
    And this makes sense - as where do we put out persistent data? Also in tables, but ones of a persistent and not temporary kind like a GTT.
    Collections are pretty useful - but limited in size and capability.
    Rudra states:
    I want to pull out few metrices from differnt tables and processing itIf this can't be achieved in a SQL statement, unless Rudra is a master of understatement then I would see GTT's as a waste of IO and programming effort. I agree.
    My comments however were about choices for a temporary data storage bin in PL/SQL.I agree with your general comments regarding temporary storage bins in Oracle, but to say that collections don't scale is putting to narrow a definition on scaling. True, collections can be resource intensive in terms of memory and CPU requirements, but their persistence will generally be much shorter than other types of temporary storage. Given the right characteristics, collections will scale and given the wrong characteristics GTT's wont scale.
    As you say it is all about choice. Getting back to the theme of this thread though, the original poster should be made aware that well designed and well coded applications are most likely to scale. Creating tables on the fly is generally considered bad practice and letting the database do what it does best, join tables in queries at the SQL level is considered good practice. The rest lies somewhere in between and knowing when to do which is why we get paid the big bucks (not). ;-)
    Regards
    Andre

  • Problems with Global Temparory Table

    {color:#0000ff}Hi,{color}
    {color:#0000ff}
    We are using Global Temporary tables in Store proc's.{color}
    {color:#0000ff}
    Created GTT Table with preserve rows on commit.{color}
    {color:#0000ff}
    we are inserting data into GTT using "Insert into Select" statement. The problem is GTT is not returning all the records. That is First run records count is 2176. After running consecutively 4 times, the record count is 49.
    we are not able to find the exact reason.
    Please let us know the reason and resolution for this issue.{color}

    I am not sure what type of GTT you have "COMMIT DELETE ROWS" or "COMMIT PRESERVE ROWS". I am guessing here, that you have GTT of "COMMIT DELETE ROWS". In this case once you have done the inserted and comitted then you will not see the record that you have just inserted. You can only see the record if you have not comitted.
    I think the procedure at first does inserts 2176 rows but the data is erased due to commit. And you see the last insert of 49 rows because you have not commited yet.
    If this is not the case then kindly post he script you are using. Regards

  • Direct Path Loading Issues with Global Temporary Tables - OCI & OCILib

    I am writing some code to import data into a warehouse from a CPU grid which computes risk data. Due to the fact a computing grid is used there will be many clients which can load the data concurrently and at any point in time.
    Currently the import uses Binding in OCCI and chunking with a prepared statement to import the data into a global temporary table in a staging area after which a stored procedure is called within the same session which will process the data and load the data into a star schema.
    The GTT has the advantage that if any clients have issues no dirty data will be left and each client only sees their own instance of the data.
    I have been looking at using direct path loading to increase the performance of the load and have written some OCI code to perform the same task. I have manged to import the data into a regular heap based table using the OCI direct path apis. However when I try and use the same code to import against a Global Temporary Table I get an OCI Error (ORA-00600: internal error code, arguments: [6979], [16], [1], [1318528], [], [], [], [], [], [], [], [])
    I get error when the function OCIDirPathPrepare is executed. The same issue occurs in both OCI and OCILib.
    Is it not possible to use Direct Path Loading against a Global Temporry Table ? Because you can use the /*+ APPEND */ hint and load global temporary tables this way from tools like SQL Devloper / toad which is surely informing the SQL Engine to use Direct Path ?
    Looking at the table USER_OBJECTS I can see that for a Global Temporary Table the DATA_OBJECT_ID is null. Does this mean that it is impossible to us a direct path load into Global Temporary Tables ?
    Any ideas / suggestions would be really appreciated. If this means redesigning the application then I would appreciate suggestions which would allow many client to quick write processes in a parallel fashion. If this means creating a new parition in a Heap Table for each writer and direct path loading into this table then so be it.
    Thanks
    H
    Edited by: 813640 on 19-Nov-2010 11:08

    Replying to my own message in case anyone else is interested.
    I have now managed to successfully load data using direct path into a global temporary table with OCI. There appears to be no reason why this approach will not work.
    I loaded data into the temporary table and then issued a select count(*) on the table from within the session and from a new session. The results were as expected.
    The resaon for the ORA-006000 error was due to the fact that I had enabled table level parallel loading
    ie
    OCIAttrSet((dvoid *) context, (ub4) OCI_HTYPE_DIRPATH_CTX, *(ub1) 1*, (ub4)0, (ub4) OCI_ATTR_DIRPATH_PARALLEL, errhp)
    When loading a Global Temporary Table the OCI_ATTR_DIRPATH_PARALLEL attribute needs to be zero
    This makes sense, since the temp table does not have any partitions so it would not be possible to write in parallel to multiple paritions.
    Edited by: 813640 on 22-Nov-2010 08:42

  • Need help with global temporary table

    Can anyone please help, the following line of code :
    CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp ( obt_uuid VARCHAR2 ) ON COMMIT DELETE ROWS
    Yeilds the following error both in PL/SQL and running it in SQL PLUS
    Error starting at line 1 in command:
    CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp ( obt_uuid VARCHAR2 ) ON COMMIT DELETE ROWS
    Error report:
    SQL Error: ORA-00906: missing left parenthesis

    Hi,
    You have to put length to varchar2 column...
    SQL> CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp ( obt_uuid VARCHAR2(30) ) ON COMMIT DELETE ROWS;
    Table created
    SQL> CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp2 ( obt_uuid VARCHAR2 ) ON COMMIT DELETE ROWS;
    CREATE GLOBAL TEMPORARY TABLE tbl_bulknodes_temp2 ( obt_uuid VARCHAR2 ) ON COMMIT DELETE ROWS
    ORA-00906: missing left parenthesis
    SQL> Regards,

  • Problems with OPMN from Companion CD (Oracle 10g R2 x86_64 RHEL4)

    I have installed Oracle 10g DB R2 64bit on RHEL4 x86_64 (AMD64) and HTTP-Server from Companion CD
    All works.
    But after running opmn appears problems:
    1. The system message to syslog: "ip_conntrack: table full, dropping packet"
    2. 'netstat -a' displays me thousands TCP-session on localhost to port 6100 in TIME_WAIT state
    And network services on my host more died than alive...
    If I increase ip_conntrack kernel parameter, then network state alive. But the problem with TCP-sessions is not resolved.
    Any ideas?
    Thanks, and sory for my english :-)
    P.S. I have RHEL4 without update 1, but with new kernel and patched binutils. Update of RHEL can resolve this problem?

    Thank you!
    The problem described in Metalink Doc-ID Note : 284602.1 is my case!
    But this document applies to Oracle Net Services - Version: 10.1.0.2 to 10.1.0.3.
    I have Version 10.2.0.1.0 and the problem apears again (with some symptoms are differ).

  • Problem with type 4 driver using oracle 10g

    HI,
    I am unable to establish a type 4 connection with oracle 10g.
    Specs:
    Driver used: OracleDriver that comes with the ojdbc14.jar along with oracle 10g
    JDK used: Tried using both j2sdk1.4.2 and using JDK 5.0
    JRE: Again, JRE that was shipped with j2sdk 1.4.2 and JRE 5.0
    OS: Windows XP sp2
    I am able to compile the following piece of code, so there is no classpath problem, etc.
    When I try to run the program, the exception thrown is "No Suitable Driver"
    There is no problem with the TNSListener, etc...even if all Oracle related services in 'services.msc' are Started/Stopped, the error remains.
    I am, however, able to establish the connection using type1 driver.
    Please Help!
    import java.sql.*;
    import java.io.*;
    class TestConn
         Connection connection;
         Statement statement;
         ResultSet resultset;
         public void testConn() throws SQLException, ClassNotFoundException
              DriverManager.registerDriver(new oracle.jdbc.driver.OracleStatement());
              //DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
              connection = DriverManager.getConnection("oracle:jdbc:thin:@127.0.0.1:1521", "scott", "tiger");
              //connection = DriverManager.getConnection("jdbc:odbc:dsn1", "scott", "tiger");
              System.out.println("Connection Established");
              statement = connection.createStatement();
              resultset = statement.executeQuery("select ename from emp");
              while(resultset.next())
                   System.out.println(resultset.getString(1));
    class Test
         public static void main(String args[]) throws SQLException, ClassNotFoundException
              TestConn obj = new TestConn();
              obj.testConn();
    };

    The JDBC URL should include the database SID. For example, if the database SID is Orcl
    connection = DriverManager.getConnection("oracle:jdbc:thin:@127.0.0.1:1521:Orcl", "scott", "tiger");

  • Problem with two OC4J instances in Oracle 10g AS

    hi all,
    i am using windows XP(OS), Oracle 10g Application Server.
    when i create two instances of OC4j other than home instance, say instance1 and instance2 and deploy two different applications in two instances then i get "page not found" error.
    both the applications gets deployed successfully and different ports get selected for both applications internally.
    the thing is when i stop one of the above instance, say instance1 the instance2 works fine and doesnt throw an error. the moment i start instance 1 both the instance gives the above stated error.
    Can anyone help??
    thanks in advance!!

    935195 wrote:
    Also, I am opening the sub-page from the parent page (through a hyperlink). Then in this case, Would session will be changed from parent to subpage? (I am not aware exactly and have the impression that, as the second page is a child, I guess it would take the same session).I'm not sure what "sub-page" or "parent page" means to you. If you're just linking from one page to another, "parent" and "child" don't really make sense since page A links to page B and B links to A quite frequently.
    Assuming that you have to log in to access the site, it is likely that the two pages share the same middle tier application session. It is unlikely that the middle tier would hold the database session from the first request open waiting to see if the user eventually requested the second page. It is theoretically possible that you could code your middle tier this way but it is extremely unlikely that you would want to do so for a variety of reasons. So, when you say "would [the] session ... be changed", it is likely that the application session would be the same for both calls but that the database session would be different.
    Justin

  • Problem with XML doc inserting into oracle 10g

    Hi Guys, I have some knowledge in oracle 10g.
    We are doing an application, when we were trying to insert XML document (I was trying to insert XML as un-structured way.) into oracle 10g as a datatype called XMLTYPE column.
    My XML is having namespace attributes(Target namespaces) in that. So when i was trying to insert that into database , it is giving some error ,and not letting me to push that into database.
    So Can any body please help me in this. My constraint is that I have to insert the document as un-structured way.
    You help would be appriciated.
    Vish
    Message was edited by:
    user567405
    Message was edited by:
    user567405
    Message was edited by:
    user567405
    Message was edited by:
    user567405
    Message was edited by:
    user567405

    , it is giving some error Hmmm, six attempts and you still didn't manage to tell us what the actuall error message and number was. Oracle has thousands of error messages. If you would like us to help you, make it easy for us to figure out what's going on. Don't make us guess.
    Regards, APC

  • Problem with new user creation in Oracle 10g

    I have created a new user and assigned it the required privileges as shown below:
    GRANTEE GRANTED_ROLE ADM DEF
    SACHIN1 CONNECT NO YES
    SACHIN1 RESOURCE NO YES
    SACHIN1 SELECT_CATALOG_ROLE NO YES
    I am able to connect to database using this user username/password but when I am trying to fire any query like one below or to access any dictionary views it shows me the error message:
    SQL> select * from dept;
    select * from dept
    ERROR at line 1:
    ORA-00942: table or view does not exist
    What is that i am missing which is not set right for this user....Let me know

    user8531525 wrote:
    DEPT table exists as I am able to access when I login using default name SCOTT.
    If its not in my schema how can i include that so that i have access to it.You can use dynamic SQL to generate a script that should work:
    SELECT 'grant select on '||OWNER||'.'||TABLE_NAME||' to SACHIN1;' as script
    FROM dba_tables
    WHERE owner='SCOTT';
    This example generates the following:
    grant select on SCOTT.DEPT to SACHIN1;
    grant select on SCOTT.EMP to SACHIN1;
    grant select on SCOTT.BONUS to SACHIN1;
    grant select on SCOTT.SALGRADE to SACHIN1;
    Eg:
    SQL> conn sys/oracle as sysdba;
    Connected.
    SQL> grant select on scott.a to rajesh;
    Grant succeeded.
    SQL> conn rajesh/rajesh;
    Connected.
    SQL> select * from scott.a;
    ID
    123
    123
    123
    am able to connect to database using this user username/password but when I am trying to fire any query like one below or to access any dictionary views it shows me the error message:try
    SQL> select name from v$database;
    NAME
    REV1
    SQL> select file_name from dba_data_files;
    FILE_NAME
    /u01/app/oracle/oradata/rev1/users01.dbf
    /u01/app/oracle/oradata/rev1/sysaux01.dbf
    /u01/app/oracle/oradata/rev1/undotbs01.dbf
    /u01/app/oracle/oradata/rev1/system01.dbf
    Edited by: rajeysh on Sep 23, 2010 1:39 AM

Maybe you are looking for

  • Control G/L account and Cost Center for movement type 251

    Dear Friends, I would like to use mov. type 251 for GI for sale and like to control over G/L account and Cost center. The G/L account is by default from the valuation class of the the material and if the user will enter wrong G/L we had done the cust

  • Demonstrating PL/SQL Functions Using SQL Developer

    Good afternoon, I'm starting to write some PL/SQL functions to replace some of the SQL that I use most frequently.  A couple of very simple examples would be: create or replace function func_test (p_1 number) return number is x number; y number; begi

  • Regarding Usaage of TCPGW tool

    Hi Experts, Currently i am working on synchronous scenario ABAP Proxy <-->PI 7.0<->web service. i want to monitor the soap messages through tcpgw tool. I have dowloaded the tool as per note 856597 in my client machine. Whene ever i am running the too

  • Data Migration from 2005 B to 2005 A

    Hi expert, As due to relocation and I need to know is there a way to convert the 2005 B version to 2005 A version with simple DTW, CopyExpress or any other tools to speed up the process? Thank you and regards, Joan Lim.

  • I'm brazilian, i need to instal adobe flash player in my macbook os x 10.5.8

    i need to install adobe in my macbook os x 10.5.8