18.1 is Now Available – Easier Connections!

thatjeffsmith SQL Developer 63 Comments

Tell Others About This Story:

Version 18.1 of SQL Developer is now available.

Go download that here.

So much to talk about, so many blogs 🙂

Most importantly, there are a TON of bug fixes in this release. Many of them reported on twitter, blog posts, and our forums. So thanks again for all that feedback.

Today I want to talk about the first thing you’ll see, our new ‘Welcome Page.’

It used to look like this –

Back in the time before time, we walked uphill, both ways!

Then it went to this –

Still just a fancy list of links.

Make it better AND more helpful

The #1 thing folks struggle with when starting with Oracle Database and SQL Developer – making a connection. We have docs, I’ve written blogs, we got videos, but what if we could make the tool a bit easier? So we did that.

We’ll –

  • Show you the TNSNames file we find
  • Or let you load your own TNS
  • Show you databases you’ve connected to previously
  • Help you GET a database

Looks a little bit like this.

We found a TNS file – what’s in it?

We look for TNS files in the same place your other Oracle tools look. If we find one, we show you where we found it. And show you what’s in it. AND you can hover over an entry to see how that Alias or Entry is defined.

And if you CLICK on it, we’ll add that connection to your list, in a folder called, TNS.

But what if we CAN’T find your TNS? Or what if you have a one-off copy of a file you’d like to use to define a connection? No problem.

Click, nav, click, OK

This will get loaded up in memory for defining connections – but WON’T become your new TNS file. For that to happen, you need to put it in the ight place(s).

Ta-da.

Recent

Your last 5 or so connections will get tracked in the Recent panel. Clicking on these entries will OPEN those connections. I’ve found myself using this, a LOT.

Your list will be more exciting than mine. You’ll see these AFTER you start SQLDev the next time after making any connections.

But I Don’t Have a Database 🙁

So get one. Here are a few to choose from.

Other Things

Yeah, we have lots of links. Places to follow us online for news and such.

We even have some pictures showing you what SQL Developer can actually do.

But.

No Like?

This is our first go at the connections bits. Let us know what you think, and we can tweak for v18.2 or 18.3 or … you could close the page and not use it again.

Set it and forget it.

But try leaving it on for at least a few days, and see if you don’t like that ‘Recent’ feature.

Yes, this is a JavaFX powered screen. Yes, that DOES normally suck up some GPU power..but we found a way to avoid that, so you can have your good looks and performance too!

Oh and if you do leave it on, when there’s a new version available, the banner up top will let you know!

Related Posts

Tell Others About This Story:

Comments 63

  1. My Start Page is permanently showing “Waiting for Editor to initialize” …. endlessly, and it’s annoying. The “Loading Welcome page” process is for ever running – and I’d like to get rid of it.

    Could you please help!

    Thanks,

    1. thatjeffsmith Post
      Author

      I’d rather find the reason why the page won’t load – that will help prevent others from running into the same problem.

      And then, once it’s working, it will be easy for you to tell it to not open again.

      Are you able to pull up the Instance Viewer from the DBA panel? It’s also a Java FX screen. If it’s working but not the Welcome Page or vice versa, we can rule in/out Java FX as the problem.

      Also, what OS and version of Java are you running?

    2. Hi Jeff,

      I’m running a Window 7 Enterprise OS and Java Version 1.8.0_181.

      I tried pulling the Instance Viewer from the DBA panel, but it’s giving the same error?

      Regards
      Steven

    3. thatjeffsmith Post
      Author

      >>but it’s giving the same error?
      You mean, you get the ‘loading’ message, and it never comes up?

      Your Java – is that from the embedded home we ship with SQLDev, or is that one you installed?

    4. Yes, the Instance Viewer is just showing “Waiting for Editor to initialize” – same as the Welcome page – and never comes up.

      Sorry, the Java version in the Editor is: Java(TM) Platform 9.0.4
      Should be the same as the shipped version.

      (I also use ODI, and it’s version it is using ver 1.8.0_181)

      Thanks,

    5. thatjeffsmith Post
      Author

      OK, it’s do this. Close SQLDev.

      GO into your AppUser folder for your OS user. In their, under Roaming Profiles is a sqldeveloper directory. And under that is a 18.whatever folder with a product.conf file. Edit that file, and point the java home to your 1.8u181 java home. Start SQLDev, let’s see if our magic spell has worked. And if it HAS – give it a day or 3 before you close that page – I think you might like the recent connections feature…

    6. Thanks Jeff!

      Took me while to figure out there are 2 directories, and the file is product.conf, but it’s working like a charm..:)

      I’ll leave it running now, it’s not as annoying anymore …

      Thanks!

    7. thatjeffsmith Post
      Author

      Sorry for the PITA, and thanks for staying with me. And I updated my comment – sorry i put the wrong file name in there!

      So for 18.3, we’ll distribute Java 8 vs 9 – too many hiccups around this and JavaFx – and we’re working on getting support for Java 11 going for a future release.

  2. Jeff,

    18.1 looks much improved and performs better than versions I’ve used in the past!

    One question, if I open an unshared worksheet, is there a way to open a sql file from the filesystem into that sheet? I cannot seem to make that happen, even with drag and drop. It opens in a new worksheet, and is not an unshared workseet.

    Thanks

    Morgan

    1. thatjeffsmith Post
      Author
    2. Right. I was looking to get it into the worksheet so as to then export the query results.

      Thanks

  3. Hey Jeff,

    Looks like some of the options around Application Express have gone away? Been looking for them all day and just aren’t there.
    Right click on APEX node -> should see at least “Import”, Right Click on application should show Import and Deploy. None of these show up.

    I kept an older installation of SQL Developer (4.1.5) around … so I fired that up. Upon connecting to the same database, and same user, I see the APEX options just fine.

    The docs (https://docs.oracle.com/database/sql-developer-18.1/RPTUG/RPTUG.pdf) say it should be where I’m looking.

  4. Hi Jeff,
    Our users are complaining about loosing connections to the database in just a few minutes and getting “Your database connection has been reset” in the latest versions of SQL Developer (including 18.1).
    SQL Developer version 4.0.3 is OK and does not reset connection.

    Is there any known issues with SQL Developer and enforced database encryption?

    Our database server tnsnames.ora:
    SQLNET.ENCRYPTION_SERVER=REQUIRED
    SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,RC4_256,AES192,3DES168,AES128,RC4_128,3DES112)
    SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED
    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=SHA1
    SQLNET.EXPIRE_TIME=1
    —-
    For example, if I establish connection to “[email protected]” and I execute a query “select count(*) from user_objects”, and then repeat the query again in a few minutes the connection is reset and see the following in the logging pane:

    SEVERE 426 116 oracle.jdevimpl.db.adapter.ReferenceWorker$PBEWorker Password decryption failed for connection u_proxy[u_odbc]@dev11

    This connection does not seem to be related to [email protected]
    Thanks,
    Edward

    1. thatjeffsmith Post
      Author

      No known issues.

      There are probably some big differences between 4 and 18 – the JDBC driver and the Oracle Thick Client. Which thick clients are you using in your 4.0.3 and 18.1 installs?

    2. Jeff,
      In both cases 4.0.3 and 18.1 are using thin JDBC driver connection.
      Database 11.2.0.4.171017 with enforced network encryption
      Query: select count(*) from user_objects;

      It probably has something to do with SQLNET.EXPIRE_TIME=1
      Here are some cases I tested with 18.1:

      1) connecting using thin JDBC driver as shared connection (default).
      Trying the query after a few minutes:
      No results shown

      SQL Developer’s Logging Pannel:
      SEVERE 737 1 oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1 peer at sun.awt.windows.WInputMethod.openCandidateWindow(Native Method)
      SEVERE 736 357730 oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1 peer at sun.awt.windows.WInputMethod.openCandidateWindow(Native Method)

      alert.log:
      ORA-00600: internal error code, arguments: [16365], [0x7000102CC27FD18], [], [], [], [], [], [], [], [], [], []

      found dead shared server ‘S008’, pid = (39, 1)

      After another attempt to run the query “Reconnect” dialog appears.

      2) connecting using thin JDBC driver as dedicated connection ( I added :DEDICATED to the service name to enforce it)
      Trying the query after a few minutes:
      No results shown

      SQL Developer’s Logging Pannel:
      SEVERE 864 199975 oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1 peer at sun.awt.windows.WInputMethod.openCandidateWindow(Native Method)

      alert.log:
      No problems.

      After another attempt to run the query “Reconnect” dialog appears.

      3) connecting using 12.2.0.1 client and using OCI/thick driver as shared connection (default)
      Trying the query after a few minutes:
      Correct results shown.

      4) connecting using thin JDBC driver to a different database that does not have defined SQLNET.EXPIRE_TIME, but has enforced network encryption.
      Trying the query after a few minutes:
      Correct results shown.

      So it seems to be related to dead connection detection and thin driver that comes with SQL developer.
      I also got additional info that SQL Developer 4.2 is affected. Someone referenced
      https://community.oracle.com/message/14355285#14355285

      Thank you,
      Edward

    3. thatjeffsmith Post
      Author
    4. thatjeffsmith Post
      Author

      BTW

      alert.log:
      ORA-00600: internal error code, arguments: [16365], [0x7000102CC27FD18], [], [], [], [], [], [], [], [], [], []

      found dead shared server ‘S008’, pid = (39, 1)

      Don’t pass go – contact Oracle Support.

    5. We had the same issue while upgrading SQL-D from 4.x to 17.x. And the same issue while upgrading ODI.
      See the Bug 27636730 (reported last year!). It only appeared when setting sqlnet.expire_time AND sqlnet.encryption_…=required

      You can try disabling one of them. We can only reproduce it with 11.2.0.4. The problem didn’t appear with 12.2.

      Again, the problem exists with ODI and SQL-D (but the SR for ODI got closed as duplicate of the SR for SQL-D) and it is known to Oracle since 2017.

    6. thatjeffsmith Post
      Author

      Our dev’s 5 minute, quick reply…

      The database is configured to kill idle sessions at some point between 10 and 15 minutes. The user is trying to use SQLNET.EXPIRE_TIME as a keep-alive, expecting that every ten minutes the connection gets pinged and that prevents the connection from idling. That’s not what SQLNET.EXPIRE_TIME is for. It’s intended to allow detection and killing of dead connections so the server can correctly clean up the sessions. We can’t reproduce it because the 15 minute idle is not from the expire time, but from the idle_time being set on the profile used by the user.

      I suspect in thick and old versions of thin, the ping from the server to the client was enough to keep the session active. It isn’t anymore (which is probably an intentional change in thin, since that parameter is about detecting dead connections, not keeping sessions alive).

    7. Piy,
      Thanks for the tip.

      Jeff,
      In our case application user does not have IDLE_TIME set at user profile.
      Setting SQLNET.EXPIRE_TIME is required by compliance and it is not used as a keep-alive,
      but rather to check if client is still alive.

      The sqlnet.expire_time parameter is used to set a time interval, in minutes, to determine how often a probe should be sent verifying that client/server connections are active. This protects the system from connections left open due to an abnormal client termination.

      It can also help cleaning sessions due to firewall timeout.
      https://docs.oracle.com/en/database/oracle/oracle-database/12.2/jjdbc/JDBC-troubleshooting.html#GUID-5ADA932F-B2BF-4E34-8995-435FD2EF1F92

      By the way,
      If I setup SQL Developer with 12.2 instant client and OCI/Thick drivers, then SQL Developer drops connection.
      If I setup SQL Developer with 12.2 client and OCI/Thick drivers, then SQL Developer keeps connection.

      Thanks,
      Edward

    8. thatjeffsmith Post
      Author

      SEVERE 426 116 oracle.jdevimpl.db.adapter.ReferenceWorker$PBEWorker Password decryption failed for connection u_proxy[u_odbc]@dev11
      Something is going wrong or related to the password not being saved as we’d expect.

    9. Jeff,
      Thank you for checking,
      I removed this entry and re-entered it one more time. No SEVERE logs since then.
      Regasrds,
      Edward

    10. thatjeffsmith Post
      Author
  5. In this version xmltype columns are not showing their value in the grid even though I’ve got Database -> Advanced -> Display Xml value in grid ticked. Also when I double click on an xml entry to view it the Edit Value box is empty.

    1. thatjeffsmith Post
      Author

      Known bug, probably the ‘worst’ one we’ve uncovered for 18.1 at the moment. Best bet is to keep a copy of 17.4 handy if you’re going to be doing much with XML.

    1. thatjeffsmith Post
      Author
  6. Hello Jeff!

    I just downloaded SQL Developer 18.1.
    Great work!

    When i select a database connection on the new welcome page, a folder (named TNS) is created in the connection list.
    I can move manual created connections into this folder and can move automatically created connections out of it, i even can rename that folder.
    How do i create such a folder manualy?
    I wished for this a long time, as i have some 200 connections that i would like to group in folders.

    As a workarround i tried to rename the TNS-folder to some other name.
    When using another connection from the welcome page, a new TNS-folder is created.
    In this way i could create some more folders.

    Thank you very much!

    1. thatjeffsmith Post
      Author
    2. Oh, that easy!
      Never looked at the connections for this option – always wanted to create the folder and then move somethin into.

      Thank you very much!

      Any chance to create nested folders, too?

    3. thatjeffsmith Post
      Author
  7. Hi Jeff,

    I just downloaded and installed v18.1.0. If you navigate to Tools –> Prefs –> Completion Insight, I no longer see the “Change Case as you Type” option. Where did it go? How can I get it back?

    1. thatjeffsmith Post
      Author

      Check out the release notes – we removed that feature. Set your formatter preferences as desired and format your code on demand with Ctrl+F7 to achieve the same effect.

    2. thatjeffsmith Post
      Author
    3. “Sorry, I will amend the release notes today.”

      I was expecting:

      “Sorry, I will amend the release 18.1 today.” .

      😉

    1. thatjeffsmith Post
      Author

      It works for me, what does ‘java -version’ show when you run that from a terminal or cmd window?

      There’s also the standalone (20MB) dist of SQLcl available from OTN as well.

    2. I installed java 8 jre. Before it seemed to be using the jre installed with sql developer. Anyway, it’s working great now.
      Thank you

  8. How do you get the welcome screen to show on starup? I ticked the do not show on my previous version of sql developer.

    Thanks

    1. thatjeffsmith Post
      Author
  9. Hi Jeff,

    18.1 appears to be missing code snippets (not templates)? has this been removed or have I just lost where it is now found.

    Regards

    Paul

    1. thatjeffsmith Post
      Author
    2. That is where I am expecting to see it but … the view menu looks like

      Reports
      SQL History
      SSH
      Task Progress

    3. thatjeffsmith Post
      Author
    1. thatjeffsmith Post
      Author

      My point in asking is if you don’t have a SR or BUG id, you can’t assume we know about the bug, that we’ve reproduced it in-house, and have a fix in the works.

      I’ll take a look on Monday.

  10. Thank you for fixing this one, was very annoying.
    Now I don’t get it…I’m switching now to 18.1

    An error was encountered performing the requested operation:

    ORA-00904: “ALL_SHARD”: invalid identifier
    00904. 00000 – “%s: invalid identifier”
    *Cause:
    *Action:
    Vendor code 904

  11. Hi Jeff

    the F10 shortcut to view the execution plan doesn’t work.

    if i use right clic / code execution plan, for me the execution plan is not understandable.

    1. thatjeffsmith Post
      Author
    2. thatjeffsmith Post
      Author
  12. There is a bug in vr.17.4 that user cannot execute DESC command for the tables that are available on a remote server with a database link.

    Is that fixed?

    1. thatjeffsmith Post
      Author
    1. thatjeffsmith Post
      Author
    2. Sorry, didn’t know this was you on facebook too. Thanks for bearing with me!

    3. thatjeffsmith Post
      Author
  13. SQL developer amazing keep evolving, i am waiting for performance feature where sql developer will suggest many of the better execution plans for particular sql and choose best out of it based on execution time

    1. thatjeffsmith Post
      Author

Leave a Reply

Your email address will not be published. Required fields are marked *